Hadoop集群kerberized时无法访问HDFS

时间:2018-12-08 19:20:57

标签: hadoop hdfs kerberos ambari

我成功地对测试的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

1 个答案:

答案 0 :(得分:1)

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

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