我的原创地址:https://dongkelun.com/2018/07/13/dbeaverConnectHive/
本文讲解如何通过数据库客户端界面工具DBeaver连接hive,并解决驱动下载不下来的问题。
为什么使用客户端界面工具而不用命令行使用hive
其实在网上搜一下,连接hive的工具还有很多,使用DBeaver的原因是因为我之前连接关系型数据库使用的就是DBeaver,正好DBeaver支持连接hive,且个人认为DBeaver确实挺好用的,支持各种关系型数据库,如连接Oracle数据库不需要像plsql那样自己配置连接文件,只需要在界面上输入url、用户名、密码即可,还有就是DBeaver的快捷键和Eclipse是一样的,比如注释、删除一行、复制一行到下一行等。
之前我一直用的旧版的,现在在官网上下载了最新版的DBeaver,发现界面功能比旧版好用了很多,亲测连hive没有问题。
下载地址:https://dbeaver.io/download/
我下载的免安装版(不带jre),windows64位,大家可以根据自己情况下载对应版本。
因为我下载的免安装版,所以解压后,直接点击dbeaver.exe就可以使用了!
测试连接前先启动hive相关的服务
1、启动hdfs、yarn
opt/hadoop-2.7.5/sbin/start-dfs.sh
/opt/hadoop-2.7.5/sbin/start-yarn.sh
2、启动hiveserver2(hive-0.11.0以后的版本)
如果想远程连接hive,则需要启动hiveserver2
/opt/apache-hive-2.3.2-bin/bin/hive --service hiveserver2
关于hadoop和hive的配置可以参考centos7 hadoop 单机模式安装配置、centos7 hive 单机模式安装配置
CREATE TABLE IF NOT EXISTS test_20180713 (id INT,name STRING)ROW FORMAT DELIMITED FIELDS TERMINATED BY " " LINES TERMINATED BY "\n";
insert into test_20180713 values(1,'tom');
DBeaver连接关系型数据库比较的简单,连接hive的话因为要配置下载驱动,所以这里详细说明一下。
这里需等待一会,截图太多,记不清楚是不是这个图了~
到这里就有问题了,之前我在公司的测试机用ambari装的hive的版本是1.2.1,然后下载1.2.1需要的hive的jar包,很快就下载下来了,之后就可以查询hive里的数据了,但是在自己的虚拟机版本为2.3.2,2.3.2的jar就下不下来了
尝试将maven库改为阿里云的无效,且测试和DBeaver的版本无关,旧版和最新版的都下载不下来
多次尝试依然解决不了驱动下载不下来的问题,只能尝试用hive安装包自带的jdbc jar了,幸好DBeaver和hive很好的支持了这种方法。hive帮我们集成了jdbc相关的一个jar包,这样我们就不用一个一个去lib下找相关的jar包了~
首先将hive安装包里的jdbc包下载到本地,jar包位置:
/opt/apache-hive-2.3.2-bin/jdbc/hive-jdbc-2.3.2-standalone.jar
然后将DBeaver默认的jar删除,再添加上我们刚才下载的jar包,然后下一步,命名我们的连接。
但是在ambari安装的hive上测试这种方法是没有问题的,经过网上查询该异常,发现是我的hdfs配置问题,修改hdfs的core-site.xml即可
先关掉hdfs、yarn、hiveserver2服务
vim /opt/hadoop-2.7.5/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>
然后重启hdfs、yarn、hiveserver2
具体可参考[Hive]那些年我们踩过的Hive坑里的第十个异常。
从这里可以看出DBeaver的界面功能还是挺丰富的,使用起来也比较方便