分享

cloudera manager配置kerberos后无法访问hdfs

yeshang 发表于 2015-9-2 19:12:56 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 26693
最近在用cm给cdh配置kerberos认证,按照官网上的步骤进行配置(用的是cdh5.4.5),配置后在启动impala时,Impala Daemon出现问题:
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: "host1/ip1"; destination host is: "host2":8020;


没找到什么原因。后面发现在服务器上访问hdfs时,在kerberos服务器上,使用kinit hdfs登录后,执行hadoop fs -ls / 可以访问;但在kerberos客户端上,使用kinit hdfs登录后,执行hadoop fs -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: "host1/ip1"; destination host is: "host2":8020;


这个错误和在启动impala时报的错一样。这里,kerberos服务端是安装在namenode上的,datanode上安装的全是kerberos客户端。这几台服务器上面的/etc/krb.conf文件完全一样。


在网上面查到,这个错误一般是服务器上没有缓存tgt信息,可是我用klist命令查看时,是有tgt的缓存信息的,如下所示:

[root@bjm6-17-121 ~]# klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: hdfs@HADOOP.58OS.ORG


Valid starting     Expires            Service principal
09/02/15 19:00:46  09/03/15 19:00:46  krbtgt/HADOOP.58OS.ORG@HADOOP.58OS.ORG
        renew until 09/09/15 19:00:46, Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96



其中,renew_lifetime是7d,ticket是可重新生成的。



各位大神,麻烦帮我看一下这是怎么回事,我都弄了好长一段时间了,都快疯了!!
求大神们不吝赐教,不胜感激!





















已有(5)人评论

跳转到指定楼层
xuanxufeng 发表于 2015-9-2 21:42:37
这是很多人都遇到的,而且不止一个人遇到过,总之这个问题,还是比较恼人的。
楼主解决这个问题也费了不少功夫。

既然官网,下面给楼主提供些思路,希望有所帮助:
1.首先100%确保自己的操作是没有问题的。否则后面解决问题没有任何意义的。因为很可能是自己疏忽造成的。
如果自己也不确定, 最好多人一起参考讨论,或则贴出楼主参考的是那个地址。会不会有中文内容等。

2.在确保自己配置正确的前提下,看看权限、用户、路径等等这些信息。
从错误信息来看,

No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]; Host Details : local host is: "host1/ip1"; destination host is: "host2":8020;
是没有有效的认证,也就是说即使你配置了,但是可能是我没有找到或则,即使你在正确,也是无效的。
所以看看到底是为什么没有找到。
回复

使用道具 举报

yeshang 发表于 2015-9-2 22:44:55
xuanxufeng 发表于 2015-9-2 21:42
这是很多人都遇到的,而且不止一个人遇到过,总之这个问题,还是比较恼人的。
楼主解决这个问题也费了不少 ...

谢谢楼上给我做了那么多分析!配置kerberos时参考的这个文档:http://www.cloudera.com/content/ ... _sg_intro_kerb.html

我现在感到比较奇怪的是:为什么在kerberos服务端上(也就是在namenode上)可以访问hdfs,而在kerberos客户端上(也就是datanode上)使用相同的用户却不可以访问。用kinit hdfs登录是这样,用keytab文件登录也是这样。应该要么都能访问,要么都不能访问。
kerberos应该是没有问题的,kerberos单独工作时可以正常使用。有可能是kerberos和cdh相连的配置哪里出问题了,不过我看了很久也没找到原因。
公司里只有我一个人在配这个,没有人一起看问题,只能在网上面找相关的资料,太痛苦了。。。

回复

使用道具 举报

yeshang 发表于 2015-9-7 10:20:16
xuanxufeng 发表于 2015-9-2 21:42
这是很多人都遇到的,而且不止一个人遇到过,总之这个问题,还是比较恼人的。
楼主解决这个问题也费了不少 ...

不知道用cm配置kerberos的时候,需不需要配置tls
回复

使用道具 举报

starrycheng 发表于 2017-2-7 13:19:30
yeshang 发表于 2015-9-7 10:20
不知道用cm配置kerberos的时候,需不需要配置tls

cdh 有专门的页面,你直接启动试试
回复

使用道具 举报

aalfalfa 发表于 2017-3-9 09:25:17
楼主最后咋解决的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条