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>