首页 > 解决方案 > Hadoop集群kerberized时无法访问HDFS

问题描述

我成功地对一个测试 Hortonworks 集群进行了kerberized。Ambari 为服务创建了 keytab,它们都已启动。名称节点有 HA。备用 namenode 启动速度很快,Active namenode 需要更长的时间。Namenode UI 显示一切都是正确的。可以使用kerberos登录。名称节点是nn1.zim.comnn2.zim.com

这个配置有什么问题?以 hdfs 身份登录,使用 kinit -kt 加载 keytab。在 HDFS 尝试列表中,我收到此错误:

[root@nn1 hdfs]# hdfs dfs -ls / 18/12/02 16:18:22 WARN ipc.Client: 连接到服务器时遇到异常:javax.security.sasl.SaslException: GSS 启动失败 [由 GSSE 引起xception:未提供有效凭据(机制级别:找不到任何 Ker beros tgt)] 18/12/02 16:18:22 INFO retry.RetryInvocationHandler:java.io.IOException:本地异常失败:java.io.IOException :javax.security.sasl.SaslException:GSS启动失败[由GSSException引起:未提供有效凭据(Mechani sm级别:找不到任何Kerberos tgt)];主机详细信息:本地主机是:“nn1.

主机的 Kerberos 主体是:

nn1.zim.com/192.168.50.10@ZIM.COM nn1.zim.com@ZIM.COM nn2.zim.com/192.168.50.11@ZIM.COM nn2.zim.com@ZIM.COM 主机/nn1.zim。 com@ZIM.COM 主机/nn2.zim.com@ZIM.COM

krb5.cfg:

[日志] 默认 = 文件:/var/log/krb5libs.log
kdc = 文件:/var/log/krb5kdc.log
admin_server = 文件:/var/log/kadmind.log

[libdefaults] dns_lookup_realm = false
ticket_lifetime = 24h renew_lifetime = 7d
forwardable = true
rdns = false default_realm = ZIM.COM
default_ccache_name = KEYRING:persistent:%{uid}

[领域] ZIM.COM = {
kdc = kb.zim.com
admin_server = kb.zim.com
}

[domain_realm]
.zim.com = ZIM.COM
zim.com = ZIM.COM

标签: hadoophdfskerberosambari

解决方案


解决方案:必须为每个主机创建两个 kerberos 主体:FQDN 和 short。我只创建了 FQDN (nn1.zim.com) - 这是问题的原因。创建第二个主体 (nn1) 后,一切都开始工作了。

当您使用 Active Directory 时,两种类型的主体都将在 AD 计算机对象创建时自动创建。


推荐阅读