报错-
User: db2305070135 is not allowed to impersonate db2305070135
📌 错误根源
这是 HiveServer2 的 hive.server2.enable.doAs 配置导致的:
- 该配置默认值为
true,表示配置允许哪些用户可以代理自己 / 其他用户,否则会抛出 AuthorizationException。 - 端口
10000已监听,说明 HiveServer2 本身运行正常,只是权限配置问题
✅ 两种解决方法(任选其一)
方法1:关闭 doAs(测试环境推荐,最快捷)
# 编辑 hive-site.xml,添加或修改以下配置
vim $HIVE_HOME/conf/hive-site.xml
添加:
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
重启 HiveServer2:
kill -9 $(ps -ef | grep HiveServer2 | grep -v grep | awk '{print $2}')
hive --service hiveserver2 &
之后即可正常连接。
方法2:保留 doAs (生产环境规范)
1. 修改hive配置,来配置代理权限
在 hive-site.xml 中添加代理配置:
# 打开配置文件
nano /usr/local/apache-hive-3.1.3-bin/conf/hive-site.xml
# 在里面添加以下内容(指定允许什么用户代理自己)
<property>
<name>hive.server2.proxy.user.hosts</name>
<value>*</value>
</property>
<property>
<name>hive.server2.proxy.user.users</name>
<value>*</value>
</property>
<property>
<name>hive.server2.proxy.user.groups</name>
<value>*</value>
</property>
2. 修改 Hadoop 配置(更规范,生产环境推荐)
在 core-site.xml 中添加代理配置:
# 打开 core-site.xml:
nano /usr/local/hadoop-3.3.4/etc/hadoop/core-site.xml
# 添加代理用户配置(允许你的用户代理自己):
<property>
<name>hadoop.proxyuser.db2305070135.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.db2305070135.groups</name>
<value>*</value>
</property>
重启 HiveServer2 后,即可允许用户模拟自己或其他用户。
🔍 验证修复
修复后执行:
beeline -u jdbc:hive2://localhost:10000 -n db2305070135
✅ 成功标志:进入 beeline 交互界面,不再报 AuthorizationException,可执行 show databases;。
✅执行成功结果:
💡 总结
- 服务状态:HiveServer2 已正常启动(端口 10000 监听)✅
- 问题本质:Hive 安全代理权限未配置,不是服务故障
- 修复后即可正常使用 beeline 或 DolphinScheduler 连接 Hive