DEMO-DBeaver连接NDH集群
DEMO-DBeaver 连接NDH集群
免责声明
DBeaver非网易产品,本文档仅供参考,非NDH服务问题对接失败,请求助产品提供方售后或社区。适用模块
对接三方产品具体说明
客户端工具对接集群使用示例
本文基于 windows 系统测试编写, mac os 配置仅可作为参数参考
1. 前置条件
1、准备Java环境,使用JDK8, 具体参考https://study.sf.163.com/documents/read/service_support/dsc-p-a-0131 中JDK配置章节
2、准备 hiveserver2 服务的jdbc 连接串,通过 easyops 服务管理页面中的 hive 服务实例获取。

3、准备 krb5.conf 配置文件,可以从集群任何一台机器的/etc/krb5.conf 路径中获取。
4、从集群任何一台机器获取 /etc/hosts 文件,并将内容追加配置到 C:\Windows\System32\drivers\etc\hosts文件中
5、确认windows 终端与集群中Kerberos kdc 1088、 zookeeper server 2182、hiveserver2 9999端口能够连通,kdc、zookeeper、hiveserver2 实例地址可以从 easyops 查看,连通性在 windows 机器中使用 PowerShell 窗口 telnet 命令验证。
6、 准备用于 Kerberos 认证的 keytab 和 principal,放在终端用户有权限访问的目录,如桌面目录。
2. 安装 Kerberos
2.1、下载并安装 Kerberos 客户端(https://web.mit.edu/kerberos/dist/index.html)

下载完之后,按正常的 windows 软件,默认安装即可,不要修改软件安装路径。
2.2、配置环境变量,这里编辑账户环境变量
将MIT移动到最上方,避免系统自带命令污染MIT的相关命令
建议将 krb5.ini 和 krb5.cache 存储位置配置在当前 windows 用户的桌面上,避免没有目录权限。 其中 krb5.ini 文件是前置准备中的 krb5.conf 文件,做了重命名。krb5.cache 文件定义 kinit 命令执行后的 token 缓存的存储位置。

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

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

保存配置后,同步配置重启 hiveserver2 实例生产。
4. 使用 dbeaver 连接 hiveserver2
4.1、修改 dbeaver.ini 文件

追加如下内容:
-Ddbeaver.distribution.type=zip
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=C:/Users/semon/Desktop/krb5.ini
-Dsun.security.krb5.debug=true4.2、 dbeaver 中创建连接,Kyuubi 的数据库驱动程序。

可以直接使用 dbeaver kyuubi数据源的驱动,版本为:kyuubi-hive-jdbc-shaded-1.8.0.18.jar版本的驱动,下载地址为https://repo1.maven.org/maven2/org/apache/kyuubi/kyuubi-hive-jdbc-shaded/1.8.1/kyuubi-hive-jdbc-shaded-1.8.1.jar。
4.3、编辑驱动设置
点击右下角--编辑驱动设置--找到类,选择驱动类org.apache.kyuubi.jdbc.KyuubiHiveDriver


4.4、配置 URL

如果连接 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
// 如果未拼接;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=84.5、点测试连接成功后即可。

常见错误问题
Q1: Cannot modify kyuubi.client.version at runtime. It is not in list of params that are allowed to be modified at runtime
A1:需执行步骤3
Q2:Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{kyuubi.client.version=xxx
A1:参考步骤4.4,重新拼接URL地址
以上内容对您是否有帮助?