hadoop - Hadoop集群kerberized时无法访问HDFS
问题描述
我成功地对一个测试 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 引起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
解决方案
解决方案:必须为每个主机创建两个 kerberos 主体:FQDN 和 short。我只创建了 FQDN (nn1.zim.com) - 这是问题的原因。创建第二个主体 (nn1) 后,一切都开始工作了。
当您使用 Active Directory 时,两种类型的主体都将在 AD 计算机对象创建时自动创建。
推荐阅读
- python - Python - 将格式化的行导入为索引列表对象
- three.js - 在three.js中混合Phong和PBR材质
- c++ - 如何传递一个类方法?
- python - Pandas 中每个单元格的自动数据类型转换
- typescript - TypeDoc 我如何为内部函数生成文档
- python - 如何使用 Python 在 MS Access 中更新或刷新表链接?
- powershell - 在 AzurePipelines 中自动化 Microsoft Teams 选项卡应用程序
- plsql - ORA-00933 运行时 plsql 抛出错误
- python - 如何在 Pygame 中运行游戏时制作不断变化的背景?
- php - 括号 json 配置文件修改为 PHP 支持