在用 hive 的 beeline 或者用 DBeaver 远程连接 hiveserver2 的时候,会报这样类似的错误:
User: xxx is not allowed to impersonate yyy (state=08S01,code=0)
解决办法:
在hadoop的配置文件core-site.xml中添加或者修改如下配置信息,再重启hadoop和相关软件应该就可以了。
<property> <name>hadoop.proxyuser.xxx.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.xxx.groups</name> <value>*</value> </property>注意:
这里的xxx对应的是User报错中的主语xxx
在这里配置可以超级代理“xxx”操作hadoop的用户、用户组和主机,这里用通配符表示所有
例如User: dxy is not allowed to impersonate hive则需要将xml变更为如下格式
<property> <name>hadoop.proxyuser.dxy.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.dxy.groups</name> <value>*</value> </property>参考资料:
[1] Hadoop 2.0中用户安全伪装/模仿机制实现原理
[2] yunyexiangfeng. . hive启动beeline连接报错: User: xxx is not allowed to impersonate anonymous (state=08S01,code=0)
[3] 李金泽AllenLi. 博客园. hiveserver2连接报错: User: root is not allowed to impersonate anonymous (state=08S01,code=0)