连接配置

下载 MIT Kerberos FRO Windows

安装 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

  1. 鉴权账号为 hive,操作系统中 hive 账号存在

hive/hadoop01@HIVE.COM

  1. 鉴权账号为 hdfs,操作系统中 hdfs 账号不存在,且 core-site.xml 文件中配置规则

hdfs/hadoop01@HIVE.COM

  1. 鉴权账号为 test111,操作系统中 test111 不存在,且 core-site.xml 文件未中配置规则

test111/hadoop01@HIVE.COM

hadoop.security.auth_to_local 配置

https://www.jianshu.com/p/2ad4be7ecf39

MIT 切换 keytab 之后,dbeaver 不生效

需要重启 dbeaver

参考文档

https://blog.csdn.net/m0_68836244/article/details/133135980