1

我有一个运行 Hortonworks Data Platform 2.4.2 的 Hadoop 集群,它已经运行了一年多。集群是 Kerberized,外部应用程序通过 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 连接。

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

4

2 回答 2

0

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

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

我还没有找到一个真正的修复程序,可以让你保持这层额外的安全性。

于 2018-07-20T14:07:57.333 回答
0

Do you have Hive Impersonation turned on?

hive.server2.enable.doAs=true

This could be the issue assuming hadoop.proxyusers.users and hadoop.proxyusers.groups are set properly.

Also, check whether the user 'knox' exist on Hive Server2 node (and others used for impersonation).

于 2018-05-22T13:27:21.463 回答