【发布时间】:2018-12-08 19:20:57
【问题描述】:
我成功地对一个测试 Hortonworks 集群进行了kerberized。 Ambari 为服务创建了 keytab,它们都已启动。名称节点有 HA。备用 namenode 启动速度很快,Active namenode 需要更长的时间。 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 INFO 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; ,同时在 nn2.zim.com/192.168.50.11 上调用 ClientNamenodeProtocolTranslatorPB.getFileInfo:1 次故障转移尝试后为 8020。休眠 1123 毫秒后尝试故障转移。
主机的 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 = 7天
可转发=真
rdns = 假 default_realm = 以星网
default_ccache_name = KEYRING:persistent:%{uid}[领域] ZIM.COM = {
kdc = kb.zim.com
admin_server = kb.zim.com
}[domain_realm]
.zim.com = ZIM.COM
以星.com =以星.COM
【问题讨论】:
-
回归基础:以 Linux user 身份登录并为 user 主体创建 Kerberos 票证,例如
kinit ducon@ZIM.COM -
默认的 Kerberos 凭据缓存是
/tmp/krb5cc_所以不要乱用 root 或任何其他系统/共享帐户。 -
推荐阅读:“Hadoop 和 Kerberos,超越大门的疯狂”,作者是 Steve Loughran(HortonWorks)。但请先阅读 Kerberos 基础知识。
-
我已经用解决方案更新了问题。
-
最好添加解决方案作为答案
标签: hadoop hdfs kerberos ambari