2017-08-29 660 views
0

我使用Ambari 2.5.0.3与Hive 1.2.1并配置了使用PAM的身份验证,此后link 但是当我尝试使用jdbc连接到配置单元时,它会抛出以下错误:Hive PAM无法使用JDBC打开客户端传输

WARN jdbc.HiveConnection: Failed to connect to localhost:10500 Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10500: Peer indicated failure: Error validating the login (state=08S01,code=0)

使用用户配置单元身份验证去,但与任何其他用户失败。 我尝试登录的用户在hdfs中有一个主文件夹。

有没有人知道如何解决这个问题?

UPDATE

当我尝试登录到/ var /日志/安全显示:

Sep 1 20:31:36 ip-10-45-1-128 java: pam_securetty(login:auth): cannot determine user's tty Sep 1 20:31:36 ip-10-45-1-128 java: pam_unix(login:auth): check pass; user unknown Sep 1 20:31:36 ip-10-45-1-128 java: pam_unix(login:auth): authentication failure; logname= uid=1001 euid=1001 tty= ruser= rhost=

虽然我使用的用户是1018它显示出它试图与登录用户1001,该用户1001在系统中被配置。

+1

您是否在/ var/log/security或/ var/log/messages中看到任何错误? – Shubhangi

回答

1

如果您阅读了您仔细阅读的文章内容,那么您会发现您正在使/etc/shadow仅由属于配置单元组的root和用户读取。以下是用于相同的命令。

2. Make shadow file accessible to hive user 
/etc/shadow needs to be readable by hive: 
chgrp hive /etc/shadow 
chmod 550 /etc/shadow 

/etc/shadow文件可由root用户和来自配置单元组的用户读取。因此,除了hive之外的用户尝试使用jdbc进行连接时,认证失败。

理想情况下,这不是一个好主意,它可以让影子文件世界可读,但如果您已经为所有用户获得了配置单元连接,那么阴影应该是世界可读的。

+0

嗨@Shubhangi我相信我已经做到了这一点:chmod 550/etc/shadow,但我不记得将阴影组更改为配置单元用户。我现在已经放弃了这个实例,但是我会在另一个实例中测试这个实例,只要我可以测试,我会在这里发布结果。 – dirceusemighini

+0

嗨@Shubhangi刚刚测试过这个,它没有在这里工作: ls -al shadow -r - r -----。 1 root hive 1541以前30 14:07 shadow – dirceusemighini

+1

@dirceusemighini,你错过了我的答案。请仔细阅读。 – Shubhangi

相关问题