当前位置: 代码网 > it编程>数据库>Access > 【kerberos】org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN,

【kerberos】org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN,

2024年08月04日 Access 我要评论
在用SUSE 操作系统安装 CM 大数据平台,在集群开启 kerberos 后,使用 HDFS 命令报错如下:环境信息SUSE Linux Enterprise Server 12 Service Pack 1 (SLES 12 SP5)仔细看,在使用 klist 命令时,有个 他指向的路径是: 而在执行 命令时,有个 他指向的路径是 默认是去 目录下找 缓存。然后 SUSE 操作系统下 并不是放在 目录下,导致 客户端认为你没有进行 认证。所以报错。在中,我们增加了下面的参数以后

前言

在用suse 操作系统安装 cm 大数据平台,在集群开启 kerberos 后,使用 hdfs 命令报错如下:

hdfs dfs -ls /
19/05/29 18:06:15 warn ipc.client: exception encountered while connecting to the server : org.apache.hadoop.security.accesscontrolexception: client cannot authenticate via:[token, kerberos]
ls: failed on local exception: java.io.ioexception: org.apache.hadoop.security.accesscontrolexception: client cannot authenticate via:[token, kerberos]; host details : local host is: "hadoop001/172.17.239.230"; destination host is: "hadoop001":8020;

环境信息

suse linux enterprise server 12 service pack 1 (sles 12 sp5)

问题复现

  1. 先进行认证
kinit -kt hdfs.keytab hdfs

## 查看票据
klist 

在这里插入图片描述

export hadoop_root_logger=debug,console
export hadoop_opts="-dsun.security.krb5.debug=true -djavax.net.debug=ssl"
hdfs dfs -ls /

在这里插入图片描述

问题原因

仔细看,在使用 klist 命令时,有个ticket cache : dir 他指向的路径是: /run/user/0/krb5cc/tkt

而在执行 hdfs 命令时,有个 kinitoptions cache name is 他指向的路径是 tmp/krb5cc_0

hdfs 默认是去 /tmp 目录下找 kerberos 缓存。然后 suse 操作系统下 kerberos 并不是放在 /tmp 目录下,导致 hdfs 客户端认为你没有进行 kerberos 认证。所以报错。

解决方案

/etc/krb5.conf中,我们增加了下面的参数以后,就可以正常kinit,也可以执行hdfs的命令了。

default_ccache_name = file:/tmp/krb5cc_%{uid}

在这里插入图片描述

  1. 销毁凭据
kdestroy
  1. 重新认证
kinit -kt hdfs.keytab hdfs
  1. 查看hds
hdfs dfs -ls /

在重新执行,问题解决!

此外网上还有别的解决方案,但都不是我这种情况。这里也顺便贴下:

方法一:

krb5.conf文件中的default_ccache_name注释掉,然后执行kdestroy,重新kinit,问题解决

方法二:

在 /etc/krb5.conf 里补全了加密方法后
https://www.cnblogs.com/tommyjiang/p/15008787.html

方法三:

代码问题
https://blog.csdn.net/ifenggege/article/details/111243297

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com