#hadoop #hadoop2 #oozie #mapr
#hadoop #hadoop2 #oozie #mapr
Вопрос:
Мы столкнулись с проблемой при настройке службы oozie с защищенным кластером mapr.
Мы используем установщик MapR для настройки кластера MapR. Ниже приведены конфигурация и шаги, которые мы выполнили.
Версия MapR — 6.1
ОС — Ubuntu 16.04
Аутентификация — Kerberos
Узлы — один узел
- Мы включили защиту Mapr, используя
Enable Secure Cluster
опцию в программе установки.
Справочный документ — https://docs.datafabric.hpe.com/61/AdvancedInstallation/using_enable_secure_cluster_option.html
- Мы установили kerberos на компьютере.
Справочный документ — https://linuxconfig.org/how-to-install-kerberos-kdc-server-and-client-on-ubuntu-18-04
- Ниже приведены команды, которые мы выполнили для настройки аутентификации kerberos для кластера MapR
Справочные документы — https://docs.datafabric.hpe.com/61/SecurityGuide/Configuring-Kerberos-User-Authentication.html
https://docs.datafabric.hpe.com/61/SecurityGuide/ConfiguringSPNEGOonMapR.html
sudo kadmin.local
addprinc -randkey mapr/my.cluster.com
ktadd -k /opt/mapr/conf/mapr.keytab mapr/my.cluster.com
addprinc -randkey HTTP/<instance-name>@<realm-name>
ktadd -k /opt/mapr/conf/http.keytab HTTP/<instance-name>@<realm-name>
addprinc -randkey mapr/<instance-name>@<realm-name>
ktadd -k /opt/mapr/conf/mapr2.keytab mapr/<instance-name>@<realm-name>
sudo chown mapr:mapr /opt/mapr/conf/mapr.keytab /opt/mapr/conf/http.keytab /opt/mapr/conf/mapr2.keytab
sudo chmod 777 /opt/mapr/conf/mapr.keytab /opt/mapr/conf/http.keytab /opt/mapr/conf/mapr2.keytab
ktutil
rkt /opt/mapr/conf/mapr.keytab
rkt /opt/mapr/conf/http.keytab
rkt /opt/mapr/conf/mapr2.keytab
wkt /opt/mapr/conf/mapr.keytab
sudo /opt/mapr/server/configure.sh -N my.cluster.com -C <CLDB Node>:7222 -Z <ZookeeperNode>:5181 -K -P "mapr/my.cluster.com@<realm-name>"
Примечание:
Команда, которая упоминается в документе ( configure.sh -K -P "<cldbPrincipal>"
), выдает ошибку, но приведенная выше команда работает.
kinit
maprlogin kerberos
hadoop fs -ls
3.1) Мы можем получить доступ к файловой системе mapr.
3.2) Мы используем приведенную ниже команду для запуска простого задания mapreduce, и оно работает нормально.
hadoop jar /opt/mapr/hadoop/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0-mapr-1808.jar pi 16 1000
- Конфигурация Oozie с проверкой подлинности kerberos
Справочный документ — https://docs.datafabric.hpe.com/61/Oozie/ConfiguringOozieonaSecureCluster.html
Мы добавили следующие свойства в oozie-site.xml
<property>
<name>oozie.authentication.type</name>
<value>kerberos</value>
<description>
Defines authentication used for Oozie HTTP endpoint.
Supported values are: simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME#
</description>
</property>
<property>
<name>oozie.service.HadoopAccessorService.keytab.file</name>
<value>/opt/mapr/conf/mapr.keytab</value>
<description>
Location of the Oozie user keytab file.
</description>
</property>
<property>
<name>local.realm</name>
<value>{local.realm}</value>
<description>
Kerberos Realm used by Oozie and Hadoop. Using 'local.realm' aligns with Hadoop configuration
</description>
</property>
<property>
<name>oozie.service.HadoopAccessorService.kerberos.principal</name>
<value>mapr/<hostname>@${local.realm}</value>
<description>
Kerberos principal for Oozie service.
</description>
</property>
<property>
<name>oozie.authentication.kerberos.principal</name>
<value>HTTP/<hostname>@${local.realm}</value>
<description>
Indicates the Kerberos principal to be used for the HTTP endpoint. The principal MUST start with 'HTTP/' per the Kerberos HTTP SPNEGO specification.
</description>
</property>
- Мы проверяем статус oozie с помощью
bin/oozie admin -status -auth KERBEROS
команды, мы получаем сообщение об ошибке ниже.
java.io.IOException: ошибка при подключении сервера Oozie. Нет попыток = 1. Исключение = Не удалось пройти аутентификацию, ошибка аутентификации, статус: 302
Пожалуйста, помогите нам решить эту проблему
Ответ №1:
Oozie — это чертов кошмар в целом. Добавление Kerberos не упростит задачу. Просто говорю.
Проблема, которую вы описываете, заключается в том, что какой-то компонент не получает памятку об используемом вами идентификаторе Kerberos или не имеет доступа / разрешений для проверки доступа. Это распространенная проблема, которая обычно требует пошагового взаимодействия для работы с тем, что известно, а что еще неизвестно (но часто предполагается). Однако я определенно не эксперт по такого рода проблемам.
Здесь у вас есть действительно отличный отчет о проблеме, который может быть использован командой поддержки.
Есть ли у вас активная поддержка или партнер?
Комментарии:
1. Привет, Тед, спасибо за ваши комментарии. У нас есть активный партнер, но от них нет помощи по этому вопросу.
2. Мы должны перейти непосредственно к этому. Вы можете найти мою контактную информацию в открытом доступе. Используйте любой адрес электронной почты, ссылку или адрес Twitter, который вы найдете.