700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > DBeaver小松鼠:数据库客户端界面工具DBeaver连接Hive

DBeaver小松鼠:数据库客户端界面工具DBeaver连接Hive

时间:2020-10-19 23:37:29

相关推荐

DBeaver小松鼠:数据库客户端界面工具DBeaver连接Hive

前言

本文讲解如何通过数据库客户端界面工具DBeaver连接hive,并解决驱动下载不下来的问题。

1、为什么使用客户端界面工具

为什么使用客户端界面工具而不用命令行使用hive

通过界面工具查看分析hive里的数据要方便很多

业务人员没有权限通过命令行连接hive

领导喜欢在界面工具上查看hive里的数据

2、为什么使用DBeaver

其实在网上搜一下,连接hive的工具还有很多,使用DBeaver的原因是因为我之前连接关系型数据库使用的就是DBeaver,正好DBeaver支持连接hive,且个人认为DBeaver确实挺好用的,支持各种关系型数据库,如连接Oracle数据库不需要像plsql那样自己配置连接文件,只需要在界面上输入url、用户名、密码即可,还有就是DBeaver的快捷键和Eclipse是一样的,比如注释、删除一行、复制一行到下一行等。

3、DBeaver下载、安装

之前我一直用的旧版的,现在在官网上下载了最新版的DBeaver,发现界面功能比旧版好用了很多,亲测连hive没有问题。

下载地址:https://dbeaver.io/download/

我下载的免安装版(不带jre),windows64位,大家可以根据自己情况下载对应版本。

因为我下载的免安装版,所以解压后,直接点击dbeaver.exe就可以使用了!

4、启动hive相关

测试连接前先启动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

注:图中的startall.sh就是上面hdfs、yarn的启动命令

5、创建hive测试表

CREATE TABLE IF NOT EXISTS test_0713 (id INT,name STRING)ROW FORMAT DELIMITED FIELDS TERMINATED BY " " LINES TERMINATED BY "\n";insert into test_0713 values(1,'tom');

6、DBeaver连接hive

DBeaver连接关系型数据库比较的简单,连接hive的话因为要配置下载驱动,所以这里详细说明一下。

6.1 文件->新建->数据库连接(新版是中文的,而之前旧版的是英文的,这点我还是比较喜欢的~)

6.2 选择新连接类型->Apache Hive(从这里看到,DBeaver支持的数据库还是很多的)

6.3 填一下hiveserver2的ip和hive的数据库名

自动下载的驱动:

7、

如果自动下载的驱动不合适则自己导入相应的驱动:

三个包都加一下

8、注意:

我这里在公司需连接vpn,所以补充下vpn配置

解压后:

安装vpn:

原文参考:/dkl12/article/details/81381122

连接报错了:

[root@sparkproject1 ~]# hive --service hiveserver2Starting HiveServer218/10/23 07:47:50 WARN conf.HiveConf: DEPRECATED: hive.metastore.ds.retry.* no longer has any effect. Use hive.hmshandler.retry.* instead[root@sparkproject1 ~]#

hive默认log目录:

/tmp/<user.name>文件夹的hive.log文件中,全路径就是/tmp/当前用户名/hive.log。

[root@sparkproject1 root]# pwd/tmp/root[root@sparkproject1 root]# lltotal 1140-rw-r--r-- 1 root root0 Aug 29 10:51 037b34c7-36be-4dcd-9632-71655d05169e1031340479492035973.pipeout-rw-r--r-- 1 root root0 Aug 29 11:18 1db7ed16-0774-4d65-9357-8f9fc8d81e66889255441814531.pipeout-rw-r--r-- 1 root root0 Aug 29 11:17 240986ce-3a86-4652-9111-9cf70ebb27b64167364938441024841.pipeout-rw-r--r-- 1 root root0 Aug 29 11:17 36ec3029-86a4-4ead-8c84-15184bba84e02398473527124955987.pipeoutdrwx------ 2 root root 4096 Aug 30 06:04 455348fc-5dcc-4b9b-aa07-55f0b1ac69ae-rw-r--r-- 1 root root0 Aug 29 11:08 6a1f5a65-8a14-4416-8e07-0dd09bc6eba81619849933300463947.pipeout-rw-r--r-- 1 root root0 Oct 23 05:41 715ddddf-a824-418c-a210-1083aa3268f72490915124940117231.pipeout-rw-r--r-- 1 root root0 Aug 29 10:50 7acadaf5-fcec-4102-9114-ca55669930408559664959062910903.pipeout-rw-r--r-- 1 root root0 Aug 29 13:09 7d5dfd06-8819-4688-9739-c54cb28e0dd57223042234491136050.pipeout-rw-r--r-- 1 root root0 Aug 29 11:12 7e51556c-9225-49b8-af93-dd83a9136e028742797957346775102.pipeoutdrwx------ 2 root root 4096 Aug 30 06:06 8195f4c9-2bbd-42d6-bcef-16e460c02a65-rw-r--r-- 1 root root0 Aug 29 11:18 8fd11d48-4810-4073-b6c1-a4a2b0eb10e35292843796529942308.pipeoutdrwx------ 2 root root 4096 Aug 30 06:03 90166cb7-a851-4501-87f9-9e00ffc3db04-rw-r--r-- 1 root root0 Aug 29 11:17 96c2aabf-c5f9-41cd-94b7-698ff8531e485233529610306324479.pipeout-rw-r--r-- 1 root root0 Aug 29 13:08 b8a8a766-d4b1-4528-8ba8-53bdd5dd47237286042327080022040.pipeoutdrwx------ 2 root root 4096 Aug 30 06:04 beba773a-eb0f-4f1d-8744-1113748cdc90-rw-r--r-- 1 root root0 Aug 29 13:11 d31e3001-18d9-4b94-ac27-611d8718dccc5011869932572437153.pipeoutdrwx------ 2 root root 4096 Aug 30 06:07 d4351240-f29e-4e38-9786-44e9925584c2-rw-r--r-- 1 root root0 Aug 29 11:17 e01f2814-e122-4dd6-bac3-2da015debdfb1336515642746251190.pipeout-rw-r--r-- 1 root root0 Aug 29 11:03 eb783cd8-4fec-4120-a820-7e08f5e747221661939143361966384.pipeout-rw-r--r-- 1 root root0 Aug 29 13:11 ec10ac35-0e55-460d-b68c-7256625bc40a6919750079144918582.pipeoutdrwx------ 2 root root 4096 Aug 30 06:03 f767c03c-818e-4dd8-81ea-b258c697bb77-rw-r--r-- 1 root root 494108 Oct 23 07:44 hive.log-rw-r--r-- 1 root root 50213 Aug 17 03:42 hive.log.-08-17-rw-r--r-- 1 root root 4411 Aug 18 14:12 hive.log.-08-18-rw-r--r-- 1 root root 79775 Aug 19 13:52 hive.log.-08-19-rw-r--r-- 1 root root 418827 Aug 29 13:30 hive.log.-08-29-rw-r--r-- 1 root root 3564 Oct 7 21:27 hive.log.-10-07-rw-r--r-- 1 root root 54170 Oct 21 08:40 hive.log.-10-21[root@sparkproject1 root]#

报错(linux日期 不对不用管):

-10-23 07:44:07,054 WARN [main]: conf.HiveConf (HiveConf.java:initialize(1534)) - DEPRECATED: hive.metastore.ds.retry.* no longer has any effect. Use hive.hmshandler.retry.* instead-10-23 07:44:07,307 WARN [main]: util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable-10-23 07:44:08,500 INFO [main]: session.SessionState (SessionState.java:start(385)) - No Tez session required at this point. hive.execution.engine=mr.-10-23 07:44:08,632 WARN [main]: conf.HiveConf (HiveConf.java:initialize(1534)) - DEPRECATED: hive.metastore.ds.retry.* no longer has any effect. Use hive.hmshandler.retry.* instead-10-23 07:44:09,016 ERROR [Thread-9]: thrift.ThriftCLIService (ThriftBinaryCLIService.java:run(120)) - Error: org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address /192.168.1.28:10000.at org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:93)at org.apache.hive.service.auth.HiveAuthFactory.getServerSocket(HiveAuthFactory.java:232)at org.apache.hive.service.cli.thrift.ThriftBinaryCLIService.run(ThriftBinaryCLIService.java:93)at java.lang.Thread.run(Thread.java:745)

根据错误提示,192.168.1.28是我之前的ip,这里没改过来,现在改为主机名 sparkproject1再试试:

打开hive-site.xml 文件,找到

<property><name>hive.server2.thrift.port</name><value>10000</value><description>Port number of HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description></property><property><name>hive.server2.thrift.bind.host</name><value>192.168.1.28</value><description>Bind host on which to run the HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description></property><property><name>hive.server2.authentication</name><value>NONE</value><description>Client authentication types.NONE: no authentication checkLDAP: LDAP/AD based authenticationKERBEROS: Kerberos/GSSAPI authentication

改后:

<property><name>hive.server2.thrift.port</name><value>10000</value><description>Port number of HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_PORT</description></property><property><name>hive.server2.thrift.bind.host</name><value>sparkproject1</value><description>Bind host on which to run the HiveServer2 Thrift interface.Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description></property><property><name>hive.server2.authentication</name><value>NONE</value><description>Client authentication types.NONE: no authentication checkLDAP: LDAP/AD based authenticationKERBEROS: Kerberos/GSSAPI authentication

同时配置hive.metastore.uris:

<property><name>hive.metastore.uris</name><value>thrift://sparkproject1:9083</value><description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description></property>

然后就不报错了:

-10-23 07:55:41,345 WARN [main]: conf.HiveConf (HiveConf.java:initialize(1534)) - DEPRECATED: hive.metastore.ds.retry.* no longer has any effect. Use hive.hmshandler.retry.* instead-10-23 07:55:41,597 WARN [main]: util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable-10-23 07:55:42,777 INFO [main]: session.SessionState (SessionState.java:start(385)) - No Tez session required at this point. hive.execution.engine=mr.-10-23 07:55:42,892 WARN [main]: conf.HiveConf (HiveConf.java:initialize(1534)) - DEPRECATED: hive.metastore.ds.retry.* no longer has any effect. Use hive.hmshandler.retry.* instead-10-23 07:56:22,079 WARN [HiveServer2-Handler-Pool: Thread-20]: fair.AllocationFileLoaderService (AllocationFileLoaderService.java:getAllocationFile(179)) - fair-scheduler.xml not found on the classpath.-10-23 07:56:22,157 INFO [HiveServer2-Handler-Pool: Thread-20]: session.SessionState (SessionState.java:start(385)) - No Tez session required at this point. hive.execution.engine=mr.-10-23 07:56:22,198 INFO [HiveServer2-Handler-Pool: Thread-20]: session.SessionState (SessionState.java:start(385)) - No Tez session required at this point. hive.execution.engine=mr.-10-23 07:56:24,331 INFO [HiveServer2-Handler-Pool: Thread-20]: parse.SemanticAnalyzer (SemanticAnalyzer.java:analyzeInternal(9381)) - Starting Semantic Analysis

ps一下:

[root@sparkproject1 hive]# ps -ef | grep hiveroot4575 3341 0 07:18 pts/3 00:00:10 /usr/java/latest/bin/java -Xmx256m -.preferIPv4Stack=true -Dhadoop.log.dir=/usr/local/hadoop/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/usr/local/hadoop -Dhadoop.id.str=root -Dhadoop.root.logger=INFO,console -Djava.library.path=/usr/local/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -.preferIPv4Stack=true -Xmx512m -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /usr/local/hive/lib/hive-service-0.13.1-cdh5.3.6.jar org.apache.hadoop.hive.metastore.HiveMetaStoreroot5332 2956 0 07:35 pts/2 00:00:00 vi hive-site.xmlroot5796 4983 0 07:54 pts/4 00:00:00 tail -1000f hive.logroot5808 3341 0 07:55 pts/3 00:00:14 /usr/java/latest/bin/java -Xmx256m -.preferIPv4Stack=true -Dhadoop.log.dir=/usr/local/hadoop/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/usr/local/hadoop -Dhadoop.id.str=root -Dhadoop.root.logger=INFO,console -Djava.library.path=/usr/local/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -.preferIPv4Stack=true -Xmx512m -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /usr/local/hive/lib/hive-service-0.13.1-cdh5.3.6.jar org.apache.hive.service.server.HiveServer2root6364 3341 0 08:23 pts/3 00:00:00 grep hive

参考:/article/p-uoyeaafw-bbb.html

然后注意先启动hive的服务:

1.关闭

可以通过ps -ef|grep hive来看hive 的端口号,然后kill 掉相关的进程。

2.启动

用来启动metastorenohup hive --service metastore 2>&1 &

用来启动hiveserver2nohup hive --service hiveserver2 2>&1 &

可以通过查看日志,来确认是否正常启动。

注意!如果 hiveserver2 不启动,jdbc将无法正常连接

DBeaver连接成功:

使用快捷键:

1、执行sql语句,选中所写得sql语句,执行Ctrl+ENTER键,即可执行语句。

2、如果想要新增一个sql编辑页面,执行ctrl+】符号。

3、如果查出来数据想要拷贝出自己想要得文本文件也可以使用这个高级拷贝。选中要复制得信息,右键,如下图。

使用高级拷贝,将行号和字段名都拷贝出来:

拷贝结果:

#idcompany_year_monthsinsert_time11097654298江苏乐能电池股份有限公司__12@威尔耐车轮制造有限公司__1156223043700021097615671中艺财富艺品城__7@北京七彩云南珠宝商城__315626800031097637851均辉有限公司__7@上海东方嘉盛供应链物流有限公司__9@德威物流上海有限公司__1@上海美国学校__5@上海美国学校__51562220708000

要求拷贝出来列之间以,分隔,行之间以|分隔。

#,id,company_year_months,insert_time|1,1097654298,江苏乐能电池股份有限公司__12@威尔耐车轮制造有限公司__1,1562230437000|2,1097615671,中艺财富艺品城__7@北京七彩云南珠宝商城__3,156268000|3,1097637851,均辉有限公司__7@上海东方嘉盛供应链物流有限公司__9@德威物流上海有限公司__1@上海美国学校__5@上海美国学校__5,1562220708000

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。