上篇介绍了Dbeaver的介绍和安装,本篇不在啰嗦。直接进入主题。
认证文件准备
Kerberos环境下使用DBeaver连接Hive需要事先准备连接用户的认证文件和集群的krb5.conf配置文件,具体可在管理平台界面的集群管理->安全管理->用户管理下载,使用的用户需要提前创建并绑定角色赋予访问Hive表的权限。
注:使用其他平台如cdh等自行百度如何获取认证文件
下载完认证文件后得到用户keytab和krb5配置,放置在DBeaver的安装目录下即可,比如新建kerberos目录下!
修改Dbeaver初始化脚本
同样需要修改dbeaver.ini配置,修改后文件内容如下:
-startup
plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1100.v20190907-0426
-vm
D:\program\jdk\bin
-vmargs
-XX:+IgnoreUnrecognizedVMOptions
--add-modules=ALL-SYSTEM
-Xms64m
-Xmx1024m
-Djava.security.auth.login.config=D:/program/dbeaver/kerberos/jaas.conf
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=D:/program/dbeaver/kerberos/krb5.conf
-Dsun.security.krb5.debug=true
其中注意项:
1. 修改jdk配置为本地安装的jdk1.8
2. 添加安全相关配置项,jaas.conf配置文件不存在可自行创建改文件,只需要修改为上一步下载的keytab认证文件即可,内容如下:
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
useTicketCache=false
keyTab=".\\kerberos\\hadoop.keytab"
principal="hadoop";
};
com.sun.security.jgss.krb5.initiate {
com.sun.security.auth.module.Krb5LoginModule required
renewTGT=false
doNotPrompt=true
useKeyTab=true
keyTab=".\\kerberos\\hadoop.keytab"
principal="hadoop"
storeKey=true
useTicketCache=false;
};
驱动包准备
连接HiveServer2需要如下驱动包:
注:这些包使用我司大数据平台已经准备好,可以在下载。其他产品或版本的Hive需要自行查找。
链接: https://pan.baidu.com/s/1vRhxgBXFWlOZrocGrqnteg 提取码: s51b
修改驱动配置
1. 创建Hive连接
2. 编辑驱动设置
新建Hive链接会默认使用非kerberos的jdbc链接串,需要编辑驱动添加hiveServer端的principal信息:
然后编辑URL模板,在原来URL后添加principal串:
;principal=hive/managerment2.hde.com@HADOOP.COM
注意:具体principal信息需要填写所要链接的HiveServer节点的认证信息,可以登录HiveServer节点,执行klist -kt /etc/security/keytabs/hive.service.keytab获取
然后把原来自带的Hive驱动包删除,添加文件把上面准备好的hive驱动依赖包添加进来即可。
测试链接成功:
然后正常使用即可;
注意事项
Dbeaver同时链接Hive和Phoenix时,比如先打开HIve连接,然后再打开Phoenix连接,会报错:
这个问题目前尚无法解决,只能关闭Dbeaver重新打开后只连Phoenix才可以。