TDH4.9.2kinit hdfs后无法访问hdfs服务

  使用配置, 其他常见问题
内容纲要

概要描述


TDH4.9.2版本,kinit完hdfs用户之后,使用hdfs命令访问hdfs时仍然报错:

java.io.IOException: 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: "mll01/172.22.33.1"; destination host is: "mll01":8020;

file

详细说明


排查过程

  1. 开启debug日志

    export HADOOP_OPTS="-Dsun.security.krb5.debug=true"
  2. 重新kinit认证并执行命令查看详细的报错信息

    # kinit认证
    kinit -kt /etc/hdfs1/hdfs.keytab hdfs/mll01@TDH
    # klist查看是否认证成功
    klist
    # 执行hdfs命令
    hdfs dfs -ls /

file

上面的日志可以看到,在执行到 KinitOptions cache name is /tmp/krb5cc_0 时开始报错了

  1. 查看krb5文件中默认的 default_ccache_name 参数值是 KEYRING:session:%{uid}

解决方案

kerberos credientials cache默认的位置与配置文件中的不一致,修改配置文件/etc/krb5.conf中的default_ccache_name 的值为 FILE:/tmp/krb5cc_%{uid}

file

重新认证hdfs用户之后,访问hdfs正常

file

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。