【问题标题】:Hive PAM Could not open client transport with JDBCHive PAM 无法使用 JDBC 打开客户端传输
【发布时间】:2018-02-07 11:49:00
【问题描述】:

我将 Ambari 2.5.0.3 与 Hive 1.2.1 一起使用,并使用 PAM 配置了身份验证,遵循此 link 但是当我尝试使用 jdbc 连接到 hive 时,它​​会引发以下错误:

WARN jdbc.HiveConnection: 无法连接到 localhost:10500 错误: 无法使用 JDBC Uri 打开客户端传输: jdbc:hive2://localhost:10500:对等指示失败:验证错误 登录(状态=08S01,代码=0)

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

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

更新

当我尝试登录 /var/log/secure 显示时:

9 月 1 日 20:31:36 ip-10-45-1-128 java: pam_securetty(login:auth): 不能 确定用户的 tty Sep 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 登录。

【问题讨论】:

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

标签: hadoop hive ambari


【解决方案1】:

如果您仔细阅读文章内容,您会发现您正在使/etc/shadow 只能由root 和属于hive 组的用户读取。以下是用于相同的命令。

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

root 用户和 hive 组的用户可以读取 /etc/shadow 文件。因此,当除 hive 之外的用户尝试使用 jdbc 连接时,身份验证失败。

理想情况下,让影子文件在世界范围内可读不是一个好主意,但如果您让 hive 连接为所有用户工作,那么影子应该是全球可读的。

【讨论】:

  • 嗨@Shubhangi 我确定我已经这样做了:chmod 550 /etc/shadow,但我不记得将影子组更改为 hive 用户。我现在已经放弃了这个实例,但我会在另一个实例中测试它,一旦我可以测试,我就会在这里发布结果。
  • 嗨@Shubhangi 刚刚对此进行了测试,但在这里不起作用:ls -al shadow -r--r-----。 1 根蜂巢 1541 前 30 14:07 阴影
  • @dirceusemighini,你误解了我的回答。请仔细阅读。
  • 嗨@Shubhangi 我已经尝试将另一个用户添加到 hive 组,但它不起作用,这不应该是一个选项,而不是让每个人都可以阅读影子吗?
猜你喜欢
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
相关资源
最近更新 更多