Hadoop集群上的Kerberos身份验证

时间:2015-03-20 07:46:12

标签: hadoop kerberos

我准备了一个带有普通apache Hadoop的2节点集群。这些节点充当另一台充当Kerberos服务器的计算机的Kerberos客户端。 使用AES,使用具有适当加密类型的kaytab文件创建KDC Db,每台计算机上hdfs的主体。 将修改所需的hdfs-site,core-site,mapred-site,yarn-site和container-executor.cfg文件。此外,为了实现无限的安全性,JCE策略文件也保存在$JAVA_HOME/lib/security目录中。

启动namenode守护程序时,它运行正常。但是在访问hdfs时

hadoop fs –ls /

我们收到以下错误:

  

15/02/06 15:17:12 WARN ipc.Client:连接到服务器时遇到异常:javax.security.sasl.SaslException:GSS启动失败[由GSS异常引起:未提供有效凭据(机制级别:无法找到任何Kerberos tgt)] ls:本地异常失败:java.io.IOException:javax.security.sasl.SaslException:GSS启动失败[由GSS异常引起:未提供有效凭据(机制级别:失败)找到任何Kerberos tgt)];主机详细信息:本地主机为:“xxxxxxx / 10.122.48.12”;目标主机是:“xxxxxxx”:8020;

如果有人事先了解或在Hadoop之上使用Kerberos,请在上述问题上建议我们一些解决方案。

1 个答案:

答案 0 :(得分:4)

要使用Hadoop命令,您需要先使用kinit命令获取Kerberos票证:

kinit [-kt user_keytab username]

完成后,您可以使用以下内容列出故障单:

klist

有关详细信息,请参阅cloudera的文档:Verify that Kerberos Security is Working