通过Knox获取与Hive的JDBC连接时出错

时间:2018-05-22 08:13:01

标签: hadoop jdbc hive kerberos knox-gateway

我有一个运行Hortonworks Data Platform 2.4.2的Hadoop集群,该集群已经运行了一年多。群集是Kerberised,外部应用程序通过Knox连接。今天早些时候,集群停止接受通过Knox到Hive的JDBC连接。

Knox日志显示没有错误,但Hive Server2日志显示以下错误:

"引起:org.apache.hadoop.security.authorize.AuthorizationException:用户:knox不允许模仿org.apache.hive.service.cli.HiveSQLException:无法验证knox的代理权限"

在查看其他用户之后,这些建议似乎主要围绕hadoop.proxyusers.users和hadoop.proxyusers.groups的配置选项的正确设置。

然而,在我的情况下,我不知道这些设置可能是什么问题。该集群已经运行了一年多,我们每天都有许多应用程序通过JDBC连接到Hive。服务器的配置尚未更改,并且之前的连接已成功连接当前配置。未对平台或环境进行任何更改,并且在上次成功的JDBC连接与拒绝的JDBC连接之间未重新启动或关闭群集以进行维护。

我现在已经停止并启动了群集,但在重新启动后,群集仍然不接受JDBC连接。

有没有人对我该如何进行有任何建议?

2 个答案:

答案 0 :(得分:0)

你有Hive Impersonation开启吗?

hive.server2.enable.doAs=true

这可能是假设hadoop.proxyusers.users和hadoop.proxyusers.groups设置正确的问题。

另外,检查Hive Server2节点(以及用于模拟的其他节点)上是否存在用户'knox'。

答案 1 :(得分:0)

已知的解决方法似乎是要设置的:

hadoop.proxyuser.knox.groups = *
hadoop.proxyuser.knox.hosts = *

我还没有找到一个真正的修复程序,可以使您保持这一层的附加安全性。