我正在使用Ambari 2.5.0.3和Hive 1.2.1并使用PAM配置身份验证,遵循此link 但是当我尝试使用jdbc连接到hive时,它会抛出以下错误:
WARN jdbc.HiveConnection:无法连接到localhost:10500错误: 无法使用JDBC Uri打开客户端传输: jdbc:hive2:// localhost:10500:Peer表示失败:验证错误 登录(state = 08S01,code = 0)
使用用户配置单元进行身份验证,但与其他任何用户一起失败。 我尝试登录的用户在hdfs中有一个主文件夹。
有人知道如何解决这个问题吗?
更新
当我尝试登录/ var / log / secure显示时:
Sep 1 20:31:36 ip-10-45-1-128 java:pam_securetty(login:auth):不能 确定用户的tty 9月1日20:31:36 ip-10-45-1-128 java: pam_unix(login:auth):检查通过;用户身份不明9月1日20:31:36 ip-10-45-1-128 java:pam_unix(login:auth):认证失败; logname = uid = 1001 euid = 1001 tty = ruser = rhost =
虽然我正在使用的用户是1018,但它显示它正在尝试使用系统中的hive uid用户1001登录。
答案 0 :(得分:1)
如果您仔细阅读了您所遵循的文章内容,那么您会发现只有root用户和属于hive组的用户才能读取/etc/shadow
。以下是用于此目的的命令。
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组的用户读取。因此,当除了hive之外的用户尝试使用jdbc进行连接时,身份验证将失败。
理想情况下,将影子文件设置为可读的并不是一个好主意,但如果你让hive连接为所有用户工作,那么影子应该是世界可读的。