文章目录
前言
以DBeaver为例,连接含有Kerberos认证的集群的Hive表
1. 配置Kerberos客户端环境
1.1 下载MIT Kerberos for Windows
1.2 拷贝krb5.conf
将KDC Server服务器上/etc/krb5.conf文件中的部分内容,拷贝到krb5.ini(ps.博主250没有去掉linux文件路径)
# Configuration snippets may be placed in this directory as well
#includedir /etc/krb5.conf.d/
[logging]
#default = FILE:/var/log/krb5libs.log
#kdc = FILE:/var/log/krb5kdc.log
#admin_server = FILE:/var/log/kadmind.log
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
# ticket_lifetime = 2m
renew_lifetime = 7d
forwardable = true
rdns = false
#pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
default_realm = BIGDATA.HEX.COM
#default_ccache_name = KEYRING:persistent:%{uid}
[realms]
BIGDATA.HEX.COM = {
kdc = 自己的服务ip
admin_server = 自己的服务ip
}
[domain_realm]
.example.com = BIGDATA.HEX.COM
example.com = BIGDATA.HEX.COM
1.3 配置环境变量
变量名:KRB5_CONFIG,变量值:D:\software\kerberos\etc\krb5.ini
变量名:KRB5CCNAME,变量值:D:\software\kerberos\temp\krb5cache
KRB5CCNAME的路径默认是不存在的,因此需要创建temp文件夹,krb5cache文件则不需要创建
配置完环境变量后,重启计算机使其生效
此时执行kinit认证报错
原来jdk自带一个kinit命令,在java的环境变量前加入Kerberos环境
1.4 认证
在可视化界面认证测试一下
注意:
用DBeaver连接Hive时,首先用kinit 命令进行缓存票据
2. DBeaver连接hive
2.1 配置dbeaver.ini
在DBeaver安装路径下找到dbeaver.ini,添加
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=D:\software\kerberos\etc\krb5.conf
-Dsun.security.krb5.debug=true
(ps.2个文件完全一样,只是本人强迫症)
2.2 连接hive
jdbc url:
jdbc:hive2://服务ip:10000/;principal=hive/lab-cdh-ylxx1@BIGDATA.HEX.COM