windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务

适用模块

客户端

具体说明

客户端工具对接集群

使用示例

本文基于 windows 系统测试编写, mac os 配置仅可作为参数参考

前置条件

1、准备 hiveserver2 服务的jdbc 连接串,通过 easyops 服务管理页面中的 hive 服务实例获取。

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图1

2、准备 krb5.conf 配置文件,可以从集群任何一台机器的/etc/krb5.conf 路径中获取。

3、从集群任何一台机器获取 /etc/hosts 文件,并将内容追加配置到 C:\Windows\System32\drivers\etc\hosts文件中

4、确认windows 终端与集群中Kerberos kdc 1088、 zookeeper server 2182、hiveserver2 9999端口能够连通,kdc、zookeeper、hiveserver2 实例地址可以从 easyops 查看,连通性在 windows 机器中使用 PowerShell 窗口 telnet 命令验证。

5、 准备用于 Kerberos 认证的 keytab 和 principal,放在终端用户有权限访问的目录,如桌面目录。

6、联系技术支持获取 kyuubi-hive-jdbc-shaded-1.8.0.18.jar 版本的驱动。

安装 Kerberos

1、下载并安装 Kerberos 客户端

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图2

下载完之后,按正常的 windows 软件,默认安装即可,不要修改软件安装路径。

2、配置环境变量,这里编辑账户环境变量

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图3

建议将 krb5.ini 和 krb5.cache 存储位置配置在当前 windows 用户的桌面上,避免没有目录权限。 其中 krb5.ini 文件是前置准备中的 krb5.conf 文件,做了重命名。krb5.cache 文件定义 kinit 命令执行后的 token 缓存的存储位置。

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图4

3、打开 PowerShell 窗口,使用 kinit 命令登录认证。

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图5

登录成功后,右下角的Kerberos 图标变成绿色,打开后,也可以看到相关的 token 信息。

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图6

EasyData Hive 服务配置变更

允许运行时设置kyuubi开头的相关参数,bdms.*是默认要用的参数,也加上,否则会影响中台功能。

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图7

保存配置后,同步配置重启 hiveserver2 实例生产。

使用 dbeaver 连接 hiveserver2

1、修改 dbeaver.ini 文件

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图8

追加如下内容:

-Ddbeaver.distribution.type=zip
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=C:/Users/semon/Desktop/krb5.ini
-Dsun.security.krb5.debug=true

2、 dbeaver 中创建连接,Kyuubi 的数据库驱动程序。

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图9

可以直接使用 dbeaver 默认自带的社区kyuubi-hive-jdbc-shaded-1.8.1.jar 之后的驱动程序,这里使用kyuubi-hive-jdbc-shaded-1.8.0.18.jar版本的驱动,可联系技术支持获取。

3、编辑驱动设置

删除默认的社区驱动,通过“添加文件”加载kyuubi-hive-jdbc-shaded-1.8.0.18.jar,确定保存后,再通过“找到类”,选择驱动类。

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图10

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图11

4、配置 URL

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图12

如果连接 HS 2.1,JDBC 连接串里指定 clientProtocolVersion=8;HS 2.3 或 3.1 无需指定。 直接连接 hiveserver2 的 url 示例如下:

jdbc:hive2://59.111.205.132:9999/default;principal=hive/dsc-demo21.jdlt.163.org@BDMS.COM;clientProtocolVersion=8

通过 zookeeper 发现连接 hiveserver2 的 url示例如下:

jdbc:hive2://dsc-demo22.jdlt.163.org:2182,dsc-demo20.jdlt.163.org:2182,dsc-demo21.jdlt.163.org:2182/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=hive/_HOST@BDMS.COM;clientProtocolVersion=8

5、点测试连接成功后即可。

DEMO-windows 终端使用 dbeaver 连接 kerberos 认证的 hive 服务 - 图13