无法使用直线连接到配置单元,用户 root 无法模拟匿名

Cannot connect to hive using beeline, user root cannot impersonate anonymous

我正在尝试使用直线连接到配置单元 !connect jdbc:hive2://localhost:10000,我被要求输入用户名和密码


Connecting to jdbc:hive2://localhost:10000' Enter username for jdbc:hive2://localhost:10000: Enter password for jdbc:hive2://localhost:10000:


因为我不知道应该输入什么用户名或密码,所以我将其留空,这会导致错误:Error: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous (state=,code=0) 我的设置是 ubuntu 中的单节点 hadoop 集群。 我可以确认服务已启动并且 运行,hadoop 和 hiveserver2

问题是,我被问到的这些用户名和密码是什么,我在哪里可以找到或设置它们?

提前致谢

您应该提供一个有效的 usernamepassword 有权访问 HDFS 和 Hive 服务 (user 运行ning HiveServer2)。对于您的设置,安装 Hadoop 和 Hive 的 user 将是超级用户。

beeline 将使用这些凭据来启动与 HiveServer2 的连接。

然后,在 core-site.xml

中添加这些属性
<property>
  <name>hadoop.proxyuser.username.groups</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.username.hosts</name>
  <value>*</value>
</property>

添加这些属性后重新启动服务。

然后运行beeline用指定的用户名username如下:

beeline -u jdbc:hive2://localhost:10000 -u username

参考:https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2#SettingUpHiveServer2-Impersonation

或者,您也可以将参数 hive.server2.enable.doAs 设置为 false 以禁用用户模拟。

在hive-site.xml需要设置参数hive.server2.enable.doAs为 假

<property>
<name>hive.server2.enable.doAs</name>
<value>FALSE</value>
<description>
Setting this property to true will have HiveServer2 execute
Hive operations as the user making the calls to it.
</description>
</property> 

http://mail-archives.apache.org/mod_mbox/hive-user/201602.mbox/%3C54b7754ceb8370b7250bba929369763f@cloudtechnologypartners.co.uk%3E