如何使用DBeaver访问Kerberos环境下的Hive

1、dbeaver所在的机器完成kerberos认证

2、debaver通过jdbc连接hive

kerberos认证通过后在有效期之内,该机器都可以连接hive,但是要注意,机器重启后,认证可能会失效,过期或者失效之后重新执行认证命令即可。

一、kerberos认证

1、安装kerberos客户端

客户端下载地址如下:

https://web.mit.edu/kerberos/dist/index.html

 如何使用DBeaver访问Kerberos环境下的Hive_第1张图片

下载完后点击安装即可。

2、cdh的认证文件准备

向cdh管理员索取krb5.keytab跟krb5.conf文件以及hive的用户名,krb5.conf文件默认路径为:/etc/krb5.conf

然后把krb5.conf文件的内容拷贝新建到文档krb5.ini,因为windows识别不到conf类型的配置文件。以下是我的krb5.ini的文件内容,我把它放到D:\krb5文件夹下:

如何使用DBeaver访问Kerberos环境下的Hive_第2张图片

3、配置环境变量

变量名:KRB5_CONFIG,变量值:D:\krb5\krb5.ini

变量名:KRB5CCNAME,变量值:C:\temp\krb5cache

KRB5CCNAME为认证成功后生成的认证缓存文件存放路径及文件名,要确保C:\temp路径存在,krb5cache是认证成功后自动生成的。

 如何使用DBeaver访问Kerberos环境下的Hive_第3张图片

4、进行认证

按住菜单键+R,输入cmd,打开dos操作界面

如何使用DBeaver访问Kerberos环境下的Hive_第4张图片

 如何使用DBeaver访问Kerberos环境下的Hive_第5张图片

进入kerberos客户端的安装目录下的bin文件夹

我安装客户端使用的是默认安装路径,所以输入以下命令:

cd C:\Program Files\MIT\Kerberos\bin

如何使用DBeaver访问Kerberos环境下的Hive_第6张图片

然后根据krb5.keytab进行认证,命令格式如下:

kinit -kt krb5.keytab 用户名

需要注意如果krb5.keytab并不在当前目录C:\Program Files\MIT\Kerberos\bin,则需要补充路径,认证完毕之后,可以执行命令klist查看认证有效期以及生成的缓存文档。

如何使用DBeaver访问Kerberos环境下的Hive_第7张图片

 如何使用DBeaver访问Kerberos环境下的Hive_第8张图片

至此kerberos认证完毕。

二、dbeaver客户端配置

1、配置hosts文件

添加cdh各服务器的ip跟域名

如何使用DBeaver访问Kerberos环境下的Hive_第9张图片

如何使用DBeaver访问Kerberos环境下的Hive_第10张图片

2.修改DBeaver配置

因为DBeaver通过JDBC的方式访问Hive,底层也是基于Java环境,所以这里需要在DBeaver的配置中增加JVM的参数,主要添加关于Kerberos相关的配置。

1.进入DBeaver的安装目录,找到dbeaver.ini配置文件,在配置文件末尾增加如下配置:

-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf="C:\ProgramData\MIT\Kerberos5\krb5.ini"
-Dsun.security.krb5.debug=true

如何使用DBeaver访问Kerberos环境下的Hive_第11张图片

2.重新启动DBeaver客户端

3、创建hive连接

如何使用DBeaver访问Kerberos环境下的Hive_第12张图片

编辑驱动设置,上传hive的驱动包,注意一定要跟服务器端的版本一直,不然会出现报错

如何使用DBeaver访问Kerberos环境下的Hive_第13张图片如何使用DBeaver访问Kerberos环境下的Hive_第14张图片

添加完之后点击找到类,选择正确的驱动

如何使用DBeaver访问Kerberos环境下的Hive_第15张图片

如何使用DBeaver访问Kerberos环境下的Hive_第16张图片

编辑URL模板,在后面加上内容“;principal=hive/{host}@EXAMPLE.COM”,注意{host}可以直接填写hiveserver2所在服务器的hostname代替,如:“;principal=hive/[email protected]”;@后面的内容是根据krb5.ini里面的default_realm值来填写。

如何使用DBeaver访问Kerberos环境下的Hive_第17张图片

如何使用DBeaver访问Kerberos环境下的Hive_第18张图片

修改完之后点击确定保存,返回上层填写jdbc的连接信息,

如何使用DBeaver访问Kerberos环境下的Hive_第19张图片

如果在url模板中直接的内容为“;principal=hive/{host}@EXAMPLE.COM”,那么主机只能填写hive服务器的hostname,如果填写内容为“;principal=hive/[email protected]”,那么主机名可以使用hive服务器的hostname也可以使用hive服务器的ip,填写数据库名称以及用户名后点击确定保存设置,然后在左侧点击连接数据库:

如何使用DBeaver访问Kerberos环境下的Hive_第20张图片

P.S.

1、jdbc链接的编写方式其实是由hive的配置文件hive-site.xml决定的,如图:

 

把value中的_HOST替换成hive的hostname即为连接模板。

2、在dbeaver创建hive的连接过程中,如果一旦出错,最好删除该链接重新创建,不然会出现很多虚假问题。

参考:https://cloud.tencent.com/developer/article/1377164

参考:https://www.cnblogs.com/fivedays/p/12808488.html

你可能感兴趣的:(dbeaver,hive,数据库,hive,kerberos)