1.文档编写目的

最近热心网友推荐了很多Hadoop平台的SQL客户端工具,Fayson在前面的文章《0459-如何使用SQuirreL通过JDBC连接CDH的Hive(方式一)》、《0463-如何使用SQuirreL通过JDBC连接CDH的Hive(方式二)》和《0465-如何使用SQuirreL访问Kerberos环境下的Hive》,简单的介绍了SQuirreL SQL Client的安装、注册Hive Driver以及使用。本篇文章Fayson主要介绍另外一款工具DBeaver的安装及使用。

测试环境

1.RedHat7.2

2.CM和CDH版本为5.15.0

3.Window Server 2012R2

2.DBeaver的安装

1.通过如下地址下载DBeaver安装包

https://dbeaver.io/download/

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_hadoop

2.双击安装包dbeaver-ce-5.2.5-x86_64-setup.exe进行安装

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_Dbeaver_02

3.界面化操作,下一步下一步完成安装即可

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_hive_03

3.DBeaver使用Hive原生驱动

1.打开DBeaver客户端工具

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_jdbc_04

2.右键在左边导航区,新建一个连接

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_cdh_05

3.选择数据库创建类型为“Apache Hive”

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_Dbeaver_06

4.点击“下一步”,填写JDBC连接信息

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_hive_07

5.编辑驱动设置,将准备好的Hive JDBC驱动包导入

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_Dbeaver_08

6.点击“找到类”,该功能会在导入的Jar包中找到Hive JDBC相关的驱动类

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_jdbc_09

7.完成JDBC信息填写及驱动设置,点击“完成”即可

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_hive_10

4.DBeaver使用Cloudera Hive驱动

这里使用原生驱动与Cloudera提供的Hive驱动有一点区别,其它基本一致,这里只描述下不一样的地方。

1.在新建连接的过程中编辑驱动,在URL模板中增加“AuthMech=3”,并导入Cloudera提供的Hive JDBC驱动jar包

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_hive_11

2.点击“找到类”,会自动找到JDBC驱动包中相应的驱动类

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_hadoop_12

3.完成创建即可

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_hadoop_13

5.DBeaver使用

1.在SQL编辑器中输入SQL语句执行

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_Dbeaver_14

2.浏览指定库下所有的表

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_Dbeaver_15

3.查看指定表的详细信息、数据等

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_jdbc_16

hvie beeline 连接开启了Kerberos的hive dbeaver连接hive kerberos_Dbeaver_17

6.总结

本篇文章就不在说明驱动包的获取方式了, 可以参考Fayson前面的文章《0459-如何使用SQuirreL通过JDBC连接CDH的Hive(方式一)》、《0463-如何使用SQuirreL通过JDBC连接CDH的Hive(方式二)》和《0465-如何使用SQuirreL访问Kerberos环境下的Hive》。

Cloudera提供的Hive JDBC驱动与Hive原生的驱动类有些区别,驱动类需要指定为“com.cloudera.hive.jdbc41.HS2Driver”。使用Cloudera提供的驱动包不需要考虑驱动包依赖的问题,默认的将Hive驱动所依赖的包都打包在里面。

Cloudera官网提供的Hive JDBC驱动包支持非安全模式认证、安全模式认证(LDAP、Kerberos)等。在驱动包提供的pdf文档中介绍了各种认证方式的URL写法,大家可以参考PDF中的使用指南访问不同环境下的Hive。

PDF文档中提到了使用transportMode和HttpPath的访问方式,HiveServer2服务默认提供基于TCP的访问模式,可以通过配置HiveServer2服务的如下参数启用HTTP模式:

hive.server2.transport.mode=http

hive.server2.thrift.http.port=10001

hive.server2.thrift.http.path=cliservice

使用Http访问HiveServer2的方式,Fayson还暂未做验证,如上参数仅供参考。