无法使用直线连接到配置单元,用户 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】:您应该提供一个有效的username
和password
,它们有权访问 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.<username>.hosts
这里的<username>
必须和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 无法模拟匿名的主要内容,如果未能解决你的问题,请参考以下文章
无法在 127.0.0.1:3306 连接到 mysql,用户 'root'@'localhost' 的用户 root 访问被拒绝(使用密码:YES)
无法连接到 MySQL:(1045)用户“root”@“localhost”的访问被拒绝(使用密码:是)[重复]
您的凭据不工作 之前用于连接到**的凭据无法工作。请输入新凭据。