连接如图(自己搭建的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