连接配置
下载 MIT Kerberos FRO Windows
下载地址2
安装 MIT Kerberos FRO Windows
一路 next
配置 hosts
配置主机 hosts(C:\Windows\System32\drivers\etc)
新加 hadoop 集群的 hosts 主机名,如:
10.21.64.12 hadoop01
10.21.64.13 hadoop02
10.21.64.14 hadoop03
修改 krb5.ini
文件
默认路径在 C:\ProgramData\MIT\Kerberos5
,如果安装路径不同则根据自己的安装路径查找文件
将服务器中下载的 krb5.conf
内容复制到 krb5.ini
中,不建议直接修改后缀,会导致读取失败
内容如下:
# Configuration snippets may be placed in this directory as well
[libdefaults]
# dns_lookup_realm = false
# ticket_lifetime = 24h
# renew_lifetime = 7d
# forwardable = true
# rdns = false
# pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
# default_realm = EXAMPLE.COM
# default_ccache_name = KEYRING:persistent:%{uid}
default_realm = HIVE.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
clockskew = 120
udp_preference_limit = 1
[realms]
# EXAMPLE.COM = {
# kdc = kerberos.example.com
# admin_server = kerberos.example.com
# }
HIVE.COM = {
kdc = hadoop01
admin_server = hadoop01
}
[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
.hive.com = HIVE.COM
hive.com = HIVE.COM
配置 KFW 环境变量
增加系统环境变量:
# 默认是这个路径,有其他安装路径自行修改
KRB5_CONFIG=C:\ProgramData\MIT\Kerberos5\krb5.ini
# temp目录需要手动创建
KRB5CCNAME=C:\temp\krb5cache
kinit 认证权限
下载服务器上的 keytab 文件到本地,进入 dos 环境
执行命令如下:
kinit -kt test111.keytab test111/hadoop01@HIVE.COM
test111.keytab
:keytab 文件名test111
:是鉴权账号名称hadoop01@HIVE.COM
:hadoop 集群 keyboard 的 principal
执行成功后可以使用 klist
查看状态
相应的 C:\temp
目录也会生成一个 cache 文件
打开 MIT Kerberos Ticket Manager 软件也可以查看到生成的密钥
准备 DBeaver 环境
下载并安装 DBeaver
修改 dbeaver 配置,找到 dbeaver.ini 文件,在文件最后添加
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=C:\ProgramData\MIT\Kerberos5\krb5.ini
-Dsun.security.krb5.debug=true
DBeaver 连接配置
添加 DBeaver 连接,新增一个 hive 连接,编辑驱动,将 URL 模板修改为 jdbc:hive2://{host}:{port}/{database};principal=hive/{host}@AOTAIN.COM
,添加 jdbc 驱动文件,找到类,点击确定后,输入主机名、库名、用户名,测试连接
URL 模板中的 principal 中"hive"应该根据 hive 的 hive-site.xml 文件中 hive.server2.authentication.kerberos.principal
配置而来
如 hive 的 hive-site.xml
文件 hive.server2.authentication.kerberos.principal
配置如下:
<property>
<name>hive.server2.authentication.kerberos.principal</name>
<value>hdfs/_HOST@HIVE.COM</value>
</property>
如上,URL 模板中的 principal 应为 hdfs/{host}@AOTAIN.COM
添加完成后,点击测试连接,连接成功
其他问题
kerberos 认证登录后,使用的hive数据库用户是?
鉴权信息如下:
hive/hadoop01@HIVE.COM
hive
:鉴权账号hadoop01@HIVE.COM
:hadoop 集群 keyboard 的 principal
鉴权账号为
hive
,操作系统中hive
账号存在
hive/hadoop01@HIVE.COM
鉴权账号为
hdfs
,操作系统中hdfs
账号不存在,且 core-site.xml 文件中配置规则
hdfs/hadoop01@HIVE.COM
鉴权账号为
test111
,操作系统中test111
不存在,且 core-site.xml 文件未中配置规则
test111/hadoop01@HIVE.COM
hadoop.security.auth_to_local
配置
MIT 切换 keytab 之后,dbeaver 不生效
需要重启 dbeaver