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

Posted

技术标签:

【中文标题】无法使用直线连接到配置单元,用户 root 无法模拟匿名【英文标题】:Cannot connect to hive using beeline, user root cannot impersonate anonymous 【发布时间】:2017-04-03 08:53:15 【问题描述】:

我正在尝试使用 beeline !connect jdbc:hive2://localhost:10000 连接到 hive,但我被要求输入用户名和密码


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 的服务都已启动并正在运行

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

提前致谢

【问题讨论】:

是我在ubuntu虚拟机中搭建的测试环境。 【参考方案1】:

您应该提供一个有效的usernamepassword,它们有权访问 HDFS 和 Hive 服务(user 运行 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 传入的用户名是什么?它应该与属性中的用户名相同。 在core-site.xml文件中,hadoop.proxyuser.&lt;username&gt;.hosts这里的&lt;username&gt;必须和beeline中使用的一样, 谢谢,这就是问题所在,hadoop.proxyuser.root.hosts 工作正常。 @franklinsijo 谢谢。参数名称中的用户名是我需要的。其他 2000 页,但没有人提到过。【参考方案2】:

在 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

【讨论】:

感谢 hive 2.1.0 和 hadoop 2.9.2 对我有用。只需记住重新启动所有 hadoop 服务和 thrift 服务器即可。

以上是关于无法使用直线连接到配置单元,用户 root 无法模拟匿名的主要内容,如果未能解决你的问题,请参考以下文章

直线无法连接到 hive2server

无法在 127.0.0.1:3306 连接到 mysql,用户 'root'@'localhost' 的用户 root 访问被拒绝(使用密码:YES)

无法连接到 MySQL:(1045)用户“root”@“localhost”的访问被拒绝(使用密码:是)[重复]

您的凭据不工作 之前用于连接到**的凭据无法工作。请输入新凭据。

用户帐户“root”的指定密码无效,或无法连接到数据库服务器

当我将 root 密码设置为“无密码”时,我无法连接到数据库