Bug记录:(org.apache.hadoop.security.authorize.AuthorizationException):

问题描述:
当我在使用hiveserver2启动hive的时候遇到报错问题:

[xeon@hadoop102 hive]$ bin/beeline -u jdbc:hive2://hadoop102:10000 -n xeon
Connecting to jdbc:hive2://hadoop102:10000
23/08/30 12:57:01 [main]: WARN jdbc.HiveConnection: Failed to connect to hadoop102:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop102:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: xeon is not allowed to impersonate xeon (state=08S01,code=0)
Beeline version 3.1.2 by Apache Hive

这里的错误说明了连接尝试失败。在这个错误中,关键信息是 “User: xeon is not allowed to impersonate xeon”,这表明用户 xeon 不被允许模拟另一个用户名 xeon。

这个错误通常涉及到 Hive 服务器的用户权限设置。它可能由以下原因导致:

  • Impersonation 模拟权限问题: Hive 配置中可能启用了用户模拟(impersonation)功能,允许一个用户模拟另一个用户来执行查询。然而,在这个错误中,用户 xeon 尝试模拟自己,这通常是不被允许的。

  • 用户权限问题: 用户 xeon 可能没有足够的权限来连接到 Hive 服务器,或者执行特定的操作。

解决方案:
因为默认情况下 hive 尝试以调用用户身份执行操作,所以可以在配置文件 hive-site.xml 中添加以下行,要求 hive 作为 hiveserver2 进程用户执行操作,然后摆脱这个错误:

  <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>

更改完配置文件后,重启hiveserver2,再执行

bin/beeline -u jdbc:hive2://hadoop102:10000 -n xeon

即可正常启动hive。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值