Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos
连接配置
下载 MIT Kerberos FRO Windows
- 下载地址1
- 下载地址2
安装 MIT Kerberos FRO Windows
一路next
配置 hosts
配置主机 hosts(C:\\Windows\\System32\\drivers\\etc)
新加 hadoop 集群的 hosts 主机名,如:
10.21.64.12 hadoop0110.21.64.13 hadoop0210.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
配置
hadoop.security.auth_to_local
MIT 切换 keytab 之后,dbeaver 不生效
需要重启dbeaver
参考文档
DBeaver使用Kerberos连接Hive-CSDN博客