2016-12-01 10 views
0

Согласно documentataion для WebHDFS REST APIИмеет ли связь Hadoop для API REST WebHDFS зависимость от Kerberos SPNEGO?

https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#Delegation_Token_Operations

Он упоминается, когда безопасность включена есть 2 механизм

Аутентификация с помощью Kerberos SPNEGO, когда безопасность на

Аутентификация с использованием маркера делегирования Hadoop, когда безопасность находится на

Если я выбираю использовать второй вариант т.е. проверки подлинности с помощью маркеров делегирования Hadoop, когда безопасность находится на

Означает ли это, он может работать без конфигурации Kerberos в установке Hadoop?

Должен ли я установить Kerberos в моей конфигурации hadoop в этом случае?

ответ

0

Чтобы положить вещи в контексте: как правило, вы используете SPNEGO когда вы начать сеанс HTTP, то кэшировать учетные данные каким-то образом, чтобы избежать сложных раундов 3-сторонней связи между клиентом, сервером и Kerberos KDC.

AFAIK, все интерфейсы Hadoop UI и REST используют подписанный файл cookie после первоначального SPNEGO, и он полностью прозрачен для вас - за исключением WebHDFS.

Теперь, с WebHDFS, вы должны управлять своими «Учетные кэш» в явном виде:

  1. начать сеанс с GET ?op=GETDELEGATIONTOKEN - не представляют каких-либо полномочий, поэтому он будет инициировать проверку подлинности SPNEGO , затем создать делегирование Hadoop маркер на стороне сервера
  2. получить эту фишку делегации из результата JSON
  3. использовать этот маркер, чтобы представить свои сессии полномочия явно в следующем GET/POST/PUT, путем добавления &delegation=XXXXXX по всем URL-адресам

Нижняя строка: да, вы должны настроить конфигурацию Kerberos на стороне клиента. Маркер делегирования позволяет минимизировать накладные расходы на аутентификацию.