Я пытаюсь создать единый узел hasoop-кластера в безопасном режиме с включенной аутентификацией Kerberos. Я создал файлы keytab, как описано в документации. При отладке вещи -HADOOP_OPTS с Dsun.security.krb5.debug = правда, я вижу следующие сообщения об ошибкахНайденный неподдерживаемый ключ (8) для nn/hadoop-kerberos @ HADOOP-KERBEROS
Found unsupported keytype (8) for nn/[email protected]
Added key: 23version: 4
Added key: 16version: 4
Added key: 17version: 4
Added key: 18version: 4
Ordering keys wrt default_tkt_enctypes list
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23 1 3.
Added key: 3version: 4
Found unsupported keytype (8) for nn/[email protected]
Added key: 23version: 4
Added key: 16version: 4
Added key: 17version: 4
Added key: 18version: 4
Ordering keys wrt default_tkt_enctypes list
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23 1 3.
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23 1 3.
>>> KrbAsReq creating message
>>> KrbKdcReq send: kdc=localhost UDP:3738, timeout=30000, number of retries =3, #bytes=171
Пожалуйста, обратите внимание, что у меня есть ../jre/lib/security/local_policy.jar и .../jre/lib/security/US_export_policy.jar в CLASSPATH.
Кроме того, я следующий в kdc.conf
[kdcdefaults]
kdc_ports = 3738
kdc_tcp_ports = 3738
[realms]
HADOOP-KERBEROS = {
kadmind_port = 3739
#master_key_type = des3-hmac-sha1
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
#admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
admin_keytab = /etc/krb5.keytab
supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal des-cbc-crc:v4 des-cbc-crc:afs3
}
[logging]
# By default, the KDC and kadmind will log output using
# syslog. You can instead send log output to files like this:
kdc = FILE:/home/build/log/krb5kdc.log
admin_server = FILE:/home/build/log/kadmin.log
default = FILE:/home/build/log/krb5lib.log
Klist -e показывает следующий вывод для пользователя aleksg, который я использую для запуска NameNode с Hadoop NameNode команды
Ticket cache: FILE:/tmp/krb5cc_501
Default principal: [email protected]
Valid starting Expires Service principal
07/12/15 09:16:39 07/13/15 09:16:39 krbtgt/[email protected]
Etype (skey, tkt): Triple DES cbc mode with HMAC/sha1, Triple DES cbc mode with HMAC/sha1
Kerberos 4 ticket cache: /tmp/tkt501
klist: You have no tickets cached
Похоже, что DES cbc режим с HMAC/sha1 используется для TGT. Не могли бы вы указать мне, как я могу решить проблему? Я использую hasoop-2.4.0 и jdk1.7.0_25. Может ли это быть каким-то образом связано с разрешениями файлов keytab или я должен восстановить файлы keytab с включенным типом шифрования? Спасибо!
** (A1) ** Sun/Oracle JDK устанавливается с "слабым ключом шифрования" по умолчанию (из-за экспорта США политики в настоящее время устарели); вы загрузили JAR? * Пока они находятся в стандартном каталоге, не беспокойтесь о CLASSPATH * ** (A2) ** Вместо этого вы попытались OpenJDK? ** (B) ** Некоторые алгоритмы шифрования могут быть отключены, поскольку они считаются «слабыми», проверьте свои файлы конфигурации на http://web.mit.edu/Kerberos/krb5-devel/doc/admin/enctypes.html –
Привет, Самсон. Связано с A1. Я загрузил local_policy.jar и US_export_policy.jar и добавил их в CLASSPATH. Только один вопрос на будущее, где находится стандартный каталог, который вы упомянули в своем ответе. Re A2. Я не пробовал OpenJDK. Re B. Я внес некоторые изменения в свою конфигурацию и смог решить эту проблему. Пожалуйста, см. Ответ, который я только что отправил на мой вопрос. –