hadoop - Hadoop 集群上的 Kerberos 身份验证

标签 hadoop kerberos

我已经准备了一个带有普通 apache Hadoop 的 2 节点集群。这些节点充当另一台充当 Kerberos 服务器的计算机的 Kerberos 客户端。 每台机器上的 KDC Db、hdfs 主体都是使用 AES 使用具有适当加密类型的 kaytab 文件创建的。 修改所需的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: Exception encountered while connecting to the server : javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)] ls: Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]; Host Details : local host is: "xxxxxxx/10.122.48.12"; destination host is: "xxxxxxx":8020;

如果有人有先验知识或曾在 Hadoop 之上研究过 Kerberos,请向我们建议有关上述问题的一些解决方案。

最佳答案

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

kinit [-kt user_keytab username]

完成后,您可以通过以下方式列出票证:

klist

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

关于hadoop - Hadoop 集群上的 Kerberos 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29161734/

相关文章:

hadoop - Map操作将非键值发送为MapReduce的输出时,Reducer发生了什么

java - 使用Apache DS/Apache Directory Studio的Hadoop安全性

java - 如何针对 Java 中的服务器验证 Kerberos 票证?

hadoop - Pig 的 COGROUP 运算符如何工作?

hadoop - 重复创建和删除配置单元表的影响

hadoop - Hadoop DFS Java客户端不起作用

windows - 适用于Windows的MIT Kerberos,带有PuTTY和AD(MSLSA)

security - HDFS 数据节点不是以 kerberos 开头

c++ - GSSAPI 获取用户名密码和构建凭证不适用于非登录用户

hadoop - 使用 Flume 将 Twitter 数据流式传输到 Hadoop 时出错