无法使用beeline连接到hive,用户root无法模仿匿名

时间:2017-04-03 08:53:16

标签: hadoop hive 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

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

提前致谢

2 个答案:

答案 0 :(得分:5)

您应该提供有权访问HDFS和Hive服务(username运行HiveServer2)的有效passworduser。对于您的设置,安装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>

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

答案 1 :(得分:0)

在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