Проблемы и решения, описанные в этой статье, также применимы к эластичность MapReduce(EMR)。
В этой статье в качестве примера используется кластер A для доступа к службам в кластере B между доменами. После завершения настройки кластер-A получает TGT (билет), предоставленный KDC этого кластера. Granting Ticket), вы можете получить доступ к сервисам в кластере B в разных доменах. Междоменное взаимное доверие, настроенное в этой статье, является односторонним, то есть кластер B не может получить доступ к службам в кластере A между доменами. Если вам нужно добиться двустороннего междоменного взаимного доверия, вы можете обмениваться конфигурациями. таким же образом.
На узле emr-header-1 в обоих кластерах выполните hostname
Команда для получения имени хоста. Получите область из файла /etc/krb5.conf узла emr-header-1. В этой статье используются два примера информации о кластере:
1. Используйте SSH для входа в кластер Cluster-A. Подробнее см. [Вход в кластер].
2. Используйте пользователя root для выполнения следующей команды на узле emr-header-1 кластера Cluster-A. sh /usr/lib/has-current/bin/admin-local.sh /etc/ecm/has-conf -k /etc/ecm/has-conf/admin.keytab admin.local: addprinc -pw 123456 krbtgt/EMR .6789.COM@EMR.1234.COM Параметры, участвующие в приведенной выше команде, следующие:
123456
: — первоначальный пароль, его можно настроить.EMR.1234.COM
: Царство Кластера-А.EMR.6789.COM
: Царство Кластера-B.3. На узле emr-header-1 кластера Cluster-B повторите описанные выше шаги [1]~[2], чтобы добавить принципала междоменной аутентификации.
1. Выполните следующую команду, чтобы изменить информацию о конфигурации krb5.conf в кластере Cluster-A.
vim /etc/krb5.conf
Настройте [realms] , [domain_realm] и [capaths] . Примеры следующие.
[libdefaults]
kdc_realm = EMR.1234.COM
default_realm = EMR.1234.COM
udp_preference_limit = 4096
kdc_tcp_port = 88
kdc_udp_port = 88
dns_lookup_kdc = false
[realms]
EMR.1234.COM = {
kdc = 10.81.**.**:88
}
EMR.6789.COM = {
kdc = 10.81.**.**:88
}
[domain_realm]
.cluster-1234 = EMR.1234.COM
.cluster-6789 = EMR.6789.COM
[capaths]
EMR.1234.COM = {
EMR.6789.COM = .
}
EMR.6789.COM = {
EMR.1234.COM = .
}
иллюстрировать:
10.81.**.** в значении параметра kdc — это IP-адрес интрасети узла, на котором расположен HAS KDC.
1. Синхронизируйте измененную информацию о конфигурации krb5.conf со всеми узлами кластера-A.
2. Скопируйте информацию из /etc/hosts узла кластера Cluster-B (требуется только длинное доменное имя emr-xxx-x.cluster-xxx) в файлы /etc/hosts всех узлов кластера-A. кластер.
10.**.**.** emr-worker-1.cluster-xxx 10.**.**.** emr-worker-2.cluster-xxx 10.**.**.** emr-header-1.cluster-xxx
3. иллюстрировать
В кластере-A вы можете использовать файл ключей Kerberos кластера-A для доступа к службам кластера-B. Например, получите доступ к службе HDFS кластера B. Создайте участника, необходимого для тестирования, и экспортируйте файл keytab. Подробности см. в разделе [Совместимость с MIT Kerberos Authentication]. Ниже в качестве примера используется вкладка клавиатуры тестового пользователя.
kinit -kt test.keytab test@EMR.1234.COM
hadoop fs -ls hdfs://emr-header-1.cluster-6789:9000/
Found 6 items
drwxr-xr-x - hadoop hadoop 0 2021-08-27 10:10 hdfs://emr-header-1.cluster-6789:9000/apps
drwxrwxrwt - hadoop hadoop 0 2021-08-27 10:10 hdfs://emr-header-1.cluster-6789:9000/spark-history
drwxrwxrwt - hadoop hadoop 0 2021-08-27 10:11 hdfs://emr-header-1.cluster-6789:9000/tmp
drwxrwxrwt - hadoop hadoop 0 2021-08-27 10:11 hdfs://emr-header-1.cluster-6789:9000/user