首页 文章

Hadoop集群上的Kerberos身份验证

提问于
浏览
2

我准备了一个带有普通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 回答

  • 3

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

    kinit [-kt user_keytab username]
    

    完成后,您可以列出以下票证:

    klist
    

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

相关问题