我准备了一个带有普通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启动失败[由GSSException引起:没有提供有效凭据(机制级别:失败)找到任何Kerberos tgt)] ls:本地异常失败:java.io.IOException:javax.security.sasl.SaslException:GSS启动失败[由GSS异常引起:未提供有效凭据(机制级别:无法找到任何Kerberos tgt) ] . 主机详细信息:本地主机为:“xxxxxxx / 10.122.48.12”;目的主机是:“xxxxxxx”:8020;
如果任何人有先验知识或在Hadoop之上使用Kerberos,请建议我们解决上述问题 .
1 回答
要使用Hadoop命令,您需要使用kinit命令首先获取Kerberos票证:
完成后,您可以列出以下票证:
有关详细信息,请参阅cloudera的文档:Verify that Kerberos Security is Working