Hive JDBC問(wèn)題
問(wèn)題簡(jiǎn)述
我在使用Java代碼中使用Hive JDBC查Hbase中的數(shù)據(jù)總是包連接失敗,開(kāi)始一直任務(wù)是集群的問(wèn)題,但是使用Hive客戶端沒(méi)有問(wèn)題,最后將Hadoop、Hbase、Hive的日志基本調(diào)整問(wèn)DEBUG,在Hbase的log中發(fā)下下面的內(nèi)容定位到是權(quán)限的問(wèn)題。
DEBUG [RpcServer.reader=2,bindAddress=slave01,port=16020] ipc.RpcServer: Connection authorization failed: User: hadoop is not allowed to impersonate hadoop
解決問(wèn)題
- Hadoop的core-site.xml文件新增如下配置
<!-- 下面的配置意思是名為hadoop的用戶只能從master、slave01、slave02連接到模擬屬于hadoop的用戶-->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>hadoop</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>master,slave01,slave02</value>
</property>
<!-- 寬松的安全性,我們也可以使用如下配置 -->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
- Hive的hive-site.xml文件新增如下配置
<!-- 默認(rèn)情況下,HiveServer2以提交查詢的用戶執(zhí)行查詢(true),如果hive.server2.enable.doAs設(shè)置為false,查詢將以運(yùn)行hiveserver2進(jìn)程的用戶運(yùn)行 -->
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>