我成功地对测试的Hortonworks集群进行了内核化。 Ambari为服务创建了密钥表,它们全部启动。名称节点有HA。备用名称节点启动很快,活动名称节点花费的时间更长。 Namenode UI显示一切正确。可以使用kerberos登录。 名称节点为 nn1.zim.com 和 nn2.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接受:未提供有效的凭据(机制级别:未能找到任何Ker beros tgt)] 18/12/02 16:18:22信息retry.RetryInvocationHandler:java.io.IOException:失败于本地异常:java.io.IOException:javax.security.sasl.SaslException:GSS启动失败[由GSSException引起:无效提供的凭据(Mechani sm级别:找不到任何Kerberos tgt)];主机详细信息:本地主机为:“ nn1。zim.com/192.168.50.10”;目标主机是:“ nn2.zim.com”:8020; ,而在尝试1次故障转移后通过nn2.zim.com/192.168.50.11调用ClientNamenodeProtocolTranslatorPB.getFileInfo g:8020。尝试休眠1123ms后进行故障转移。
主机的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 host/nn2.zim.com@ZIM.COM
krb5.cfg:
[记录]默认= FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log[libdefaults] dns_lookup_realm = false
ticket_lifetime = 24h renew_lifetime = 7天
转发=真
rdns = false default_realm = ZIM.COM
default_ccache_name = KEYRING:持久性:%{uid}[领域] ZIM.COM = {
kdc = kb.zim.com
admin_server = kb.zim.com
}[domain_realm]
.zim.com = ZIM.COM
zim.com = ZIM.COM
答案 0 :(得分:1)
解决方案:必须为每个主机创建两个kerberos主体:FQDN和short。我仅创建了FQDN(nn1.zim.com)-这就是问题的原因。创建第二个主体(nn1)后,一切开始起作用。
使用Active Directory时,两种类型的主体都将在创建AD计算机对象时自动创建。