Hive通過JDBC方式訪問時碰到的問題彙總
阿新 • • 發佈:2019-02-14
1、執行hive sql時伺服器報Connection refused錯誤
解決方法:Hive沒有啟動hive server2,可以通過如下指令啟動,指令的後半段是指定日誌存放地址
hive --service hiveserver2 2>&1 >> /home/user/hive/log.log 2>&1 &
2、執行hive sql時報 xxxx is not allowed to impersonate xxxx
解決方法:這是賬戶配置問題,需修改hadoop的配置檔案core-site.xml,UserName是在hadoop的賬戶名,記得修改後要重啟hadoop
<property>
<name>hadoop.proxyuser.UserName.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.UserName.groups</name>
<value>UserName</value>
</property>
3、執行hive sql時報 org.apache.hadoop.hbase.exceptions.ConnectionClosingException: Connection to xxxx/xx.xx.xx.xx:xxxx is closing,但同樣的指令在hive shell裡執行卻沒問題
解決方法:修改hive的配置檔案hive-site,將hive.exec.submitviachild設定為true
<property>
<name>hive.exec.submitviachild</name>
<value>true</value>
</property>
ps:這個問題相對比較難理解,這個問題僅發生在呼叫的資源跟hbase有關係的時候(外部表),如果僅僅是hive自身相關的表還不會有這個異常,而且這個錯誤出現時對應的異常資訊是socketTimeout,按這個異常去查hbase.rpc.timeout,hbase.client.operation.timeout,hbase.client.scanner.timeout.period都是徒勞的,順帶貼個