8

我正在尝试使用 beeline 连接到蜂巢!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

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

提前致谢

4

2 回答 2

12

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

这些凭据将用于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>

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

于 2017-04-03T09:16:39.413 回答
8

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

<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

于 2019-03-11T03:46:17.197 回答