我有一个运行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连接。
有没有人对我该如何进行有任何建议?
答案 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 = *
我还没有找到一个真正的修复程序,可以使您保持这一层的附加安全性。