我已经用普通的apachehadoop准备了一个2节点集群。这些节点充当另一台机器的kerberos客户端,该机器充当kerberos服务器。每台机器上hdfs的kdcdb主体都是使用aes创建的,它们的kaytab文件具有适当的加密类型。所需的hdfs site、core site、mapred site、yarn site和container-executor.cfg文件已修改。另外,为了获得无限的安全性,jce策略文件也保存在 $JAVA_HOME/lib/security
目录。
启动namenode守护进程时,它工作正常。但是在访问hdfs时
hadoop fs –ls /
我们得到以下错误:
2006年2月15日15:17:12警告ipc.client:连接到服务器时遇到异常:javax.security.sasl.saslexception:gss initiate失败[由gssexception:未提供有效凭据(机制级别:找不到任何kerberos tgt)]ls:在本地异常上失败:java.io.ioexception:javax.security.sasl.saslexception:gss初始化失败[由gssexception引起:未提供有效凭据(机制级别:找不到任何kerberos tgt)];主机详细信息:本地主机为:“x/10.122.48.12”;目的主机为:“x”:8020;
如果有人有先见之明或在hadoop之上使用过kerberos,请就上述问题向我们推荐一些解决方案。
1条答案
按热度按时间yqhsw0fo1#
要使用hadoop命令,首先需要使用kinit命令获取kerberos票证:
完成后,您可以列出以下票证:
有关更多详细信息,请参阅cloudera的文档:验证kerberos安全性是否正常工作