2016-10-14 4 views
0

В настоящее время я работаю над проектом по повышению безопасности кластера Hadoop. В конце концов я буду использовать Kerberos и Sentry для аутентификации и авторизации. И сопоставление имени пользователя и группы будет поступать из AD/LDAP (?), Я так думаю.Где Hadoop получает имя пользователя и групповое сопоставление для имени пользователя linux и сопоставления групп?

Но теперь я просто учусь и стараюсь. У меня есть вопрос, и я не понял, что это

Откуда взялась информация о сопоставлении имени пользователя и группы?

Насколько я знаю, нет имени пользователя и группы для Hadoop, а имя пользователя и имя группы приходят от клиента, где бы ни находились на локальной клиентской машине или в области Kerberos. Но это немного расплывчато для меня, и я могу получить детали реализации здесь?

Это информация с компьютера, на котором расположен клиент HDFS, или из имени и группы оболочки linux на узле имени? Или это зависит от контекста - даже связанного с узлом данных? Что делать, если узлы данных и узлы имен имеют разные пользователи или сопоставление групп пользователей в локальных блоках.

ответ

1

Hadoop получает эту информацию из глобальной переменной с именем HADOOP_USER_NAME.

Если вы хотите передать другой user_name, вы можете написать, как следующее:

HADOOP_USER_NAME=yourname hadoop dfs -put ... 

Таким образом, команда должна начинаться с HADOOP_USER_NAME=VALUE,

+0

Я думаю, что это правильно. Однако это единственный способ получить имя пользователя Hadoop? – cdhit

1

клиент и NameNode и все услуги Hadoop, которые проверка членства в группе и имени пользователя в поле Linux использует команду id по умолчанию. (Однако я не уверен в деталях клиентов Windows, но в последнее время это делается через JNI, поэтому на этой стороне также должно быть решение.)

Это также означает, что результат будет зависеть от локального отображение групп пользователей. Если вы используете Kerberos с любым бэкэнд или если у вас есть централизованный бэкэнд для этого через sssd или что-то еще, тогда вы можете настроить это поле в свой nsswitch.conf, чтобы использовать это за командой id.

Боковое примечание: существует свойство, называемое hadoop.security.group.mapping, которое определяет стратегию, используемую для выполнения сопоставления. Я не рекомендую использовать LDAPGroupMapping, даже если у вас есть LDAP-сервер, JNIBasedGroupMappingWithFallback кажется более надежным и работает хорошо.

 Смежные вопросы

  • Нет связанных вопросов^_^