Hive_使用JDBC访问Hive


场景: 使用JDBC方式访问Hive报错时遇到如下错误

[cannice@hadoop102 hive]$ bin/beeline -u jdbc:hive2://hadoop102:10000 -n cannice
Connecting to jdbc:hive2://hadoop102:10000
22/07/21 04:51:58 [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: cannice is not allowed to impersonate cannice (state=08S01,code=0)
Beeline version 3.1.2 by Apache Hive

原因: 默认情况下HiveServer2 执行查询时使用的用户是提交查询的用户,但是如果将这个选项设置为false,查询将会使用运行hiveserver2的用户。

解决方法: 修改hive中的配置文件hive-site.xml,添加如下信息即可解决问题。(注意重启服务)

<property>
        <name>hive.server2.enable.doAs</name>
        <value>false</value>
</property>

 

posted @ 2022-07-22 14:16  梅子猪  阅读(252)  评论(0编辑  收藏  举报