連接如圖(自己搭建的hive沒設置的話用戶名跟密碼可以不用填):
異常報錯:
1、User: xxx is not allowed to impersonate root),xxx是自己的電腦名字,這個不重要
解決思路,進入hadoop 目錄/etc/hadoop/ 編輯core-site.xml ,在配置裏添加
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
正常情況下不需要修改任何內容,可是我這裏的用戶是xxx,所以需要把root,改成報錯的時候的名字也就是上面的xxx
<property>
<name>hadoop.proxyuser.xxx.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.xxx.groups</name>
<value>*</value>
</property>
2、解決了異常(1)之後還是出現了 Permission denied: user=root, access=EXECUTE, inode="/tmp":xxx:xxx, xxx是名字,權限問題
解決思路,進入hadoop 目錄 /etc/hadoop/ 編輯 hdfs-site.xml ,在配置裏添加
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
3、滿懷期待的解決了異常(2)之後又出現了Could not open client transport with JDBC Uri: jdbc:hive2://127.0.0.1:10000/default:
java.net.ConnectException
解決思路,檢查hiveserver2 是否啓動,執行命令查看10000端口
如果圖片如下所示就表示啓動了,啓動hiveServer 命令如下
hive --service hiveserver2
在這裏的時候要稍等一會,因爲不是立馬就可以了至少要有5、6個會話
然後用客戶端DBeaver嘗試連接hive,終於成功了!!!
4、在DBeaver 執行語句時報錯,相同的語句在hive shell中執行就完全沒有問題:
Job Submission failed with exception 'org.apache.hadoop.security.AccessControlException(Permission denied: user=anonymous, access=EXECUTE, inode="/tmp/hadoop-yarn":xxx:xxx:drwx------
1、要麼直接在hive shell中執行sql語句
2、要麼就是把hdfs 的tmp目錄修改權限
hdfs dfs -chmod -R 777 /tmp
=============================================================================================
DBeaver 在線下載hive 驅動一直失敗,在這裏我也是經過長時間的查找終於找到了,也一併貢獻給大家
鏈接:https://pan.baidu.com/s/1f5g7fHpjrEp2MbRdzGLK6A 密碼:ndge