В Kerberos есть имя «foo», кластер hadoop защищен Kerberos. Я хочу, чтобы кластер hadoop выполнял задание как «foo», как я могу это сделать? Какова конфигурация, позволяющая клиенту hadoop указывать имя учетной записи пользователя kerberos для запуска, как и кластер «kinit username» кластера, а затем запустить задание mapreduce? Just FYI, hadoop 2.6.0Сделайте Hadoop запущенным как пользователь Kerberos
0
A
ответ
1
Я считаю, что вы ищете олицетворение пользователя. Это можно сделать в файле core-site.xml. Смотрите следующий пример:
<property>
<name>hadoop.proxyuser.super.hosts</name>
<value>host1,host2</value>
</property>
<property>
<name>hadoop.proxyuser.super.groups</name>
<value>group1,group2</value>
</property>
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Superusers.html
Не совсем, я ищу коснуться похожего на этот вопрос, http://stackoverflow.com/questions/11656543/how-to-get-kerberos- вместо-оф-делегации-токен-в-Hadoop-MapReduce. Но я не хочу передавать tgt по сети. – mattsun
Huh - но TGT ** разработан ** для передачи по сети. У него нет другой цели: сначала вы получаете TGT из службы Kerberos, затем отправляете его в сервисы 1..N, затем эти службы отправляют его обратно в Kerberos для проверки (например, для получения служебного билета). –
Вы, кажется, правы. Но я беспокоюсь, что если tgt передается Kerberos, тогда мне не нужно заботиться о безопасности. Но если я каким-то образом реализую это (например, в http://stackoverflow.com/questions/11656543/how-to-get-kerberos-instead-of-delegation-token-in-hadoop-mapreduce), тогда безопасность может быть проблемой. Так что я ищу, это механизм, предоставляемый hadoop и Kerberos для этого. – mattsun