前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows下Dbeaver连接设置Kerberos后的Hive和Phoenix

Windows下Dbeaver连接设置Kerberos后的Hive和Phoenix

作者头像
码客说
发布2023-08-11 16:01:25
6580
发布2023-08-11 16:01:25
举报
文章被收录于专栏:码客码客

安装Kerberos客户端

下载地址

https://web.mit.edu/kerberos/dist/index.html

安装运行后会生成配置文件

配置文件的路劲和安装路径无关,是固定的。

C:\ProgramData\MIT\Kerberos5\krb5.ini

下载服务其上的krb5.conf配置文件,

krb5.conf配置文件的内容复制到C:\ProgramData\MIT\Kerberos5\krb5.ini里,并且删除[libdefaults]上边的内容。

保留部分例如下:

代码语言:javascript
复制
[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 = HADOOP.COM

[realms]
 HADOOP.COM = {
 kdc = hadoop01
 admin_server = hadoop01
 }

[domain_realm]
.hadoop.com = HADOOP.COM
hadoop.com = HADOOP.COM

创建路径:C:\temp

配置环境变量:

C:\temp\krb5cache的路径默认是不存在的,只需要默认创建C:\temp即可,krb5cache是kerberos认证后自动生成的

变量名

变量值

KRB5_CONFIG

C:\ProgramData\MIT\Kerberos5\krb5.ini

KRB5CCNAME

C:\temp\krb5cache

配置完环境变量后,重启计算机使其生效。

登录

具体步骤

下载keytab文件

C:\ProgramData\MIT\Kerberos5\hdfs.keytab

进入安装目录

代码语言:javascript
复制
cd D:\Tools\KerberosClient\bin

推荐添加到环境变量Path中

CMD中运行

代码语言:javascript
复制
kinit -kt C:\ProgramData\MIT\Kerberos5\hdfs.keytab hdfs/hadoop01@HADOOP.COM

查看是否登录成功:

代码语言:javascript
复制
klist

可以看到

image-20230810144350952
image-20230810144350952

登录MIT Kerberos Ticket Manager客户端查看

image-20230810122850530
image-20230810122850530

这样就登录成功了

问题

kinit和klist可能系统中有。

我们可以通过如下命令获取生效的顺序

代码语言:javascript
复制
where klist
where kinit

如图

image-20230810143338229
image-20230810143338229

我们发现klist生效的不是我们设置的,这就要改变环境变量Path中的顺序

D:\Tools\KerberosClient\bin放在系统变量Path的最前面。

注意

优先级:系统变量>用户变量,设置后需要重启电脑。

重启后

image-20230810144156583
image-20230810144156583

连接Hive

目前使用22.0.3成功了,使用23.0.4一直不成功。

步骤

在配置文件D:\Tools\dbeaver\dbeaver.ini最后添加

代码语言:javascript
复制
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=C:\ProgramData\MIT\Kerberos5\krb5.ini
-Dsun.security.krb5.debug=true

注意

地址不要加双引号

连接设置 => 编辑驱动设置

把URL模板

代码语言:javascript
复制
jdbc:hive2://{host}[:{port}][/{database}]

修改为

代码语言:javascript
复制
jdbc:hive2://{host}[:{port}][/{database}]/;principal=hdfs/{host}@HADOOP.COM

完整的地址

代码语言:javascript
复制
jdbc:hive2://192.168.7.101:10000/zdb/;principal=hdfs/hadoop01@HADOOP.COM

需要把hdfs-site.xmlcore-site.xml这两个配置文件放在jar的同级目录。

连接Phoenix

打开dbever的安装路径下的dbeaver.ini配置文件,加上

代码语言:javascript
复制
-vm
D:\Tools\Java\jdk1.8.0_102\bin
-Djava.security.auth.login.config=C:/ProgramData/MIT/Kerberos5/jaas.conf

hdfs-site.xmlcore-site.xmlhbase-site.xml,并且将三个xml配置文件拷贝到依赖Jar包同级目录下

代码语言:javascript
复制
jdbc:phoenix:hadoop01,hadoop02,hadoop03:/hbase:hdfs/hadoop01@HADOOP.COM:C:\ProgramData\MIT\Kerberos5\hdfs.keytab

添加配置参数:

在连接属性中设置如下参数,与集群中保持一致:

代码语言:javascript
复制
phoenix.schema.isNamespaceMappingEnabled=true
phoenix.schema.mapSystemTablesToNamespace=true

其中jaas.conf

代码语言:javascript
复制
Server {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  keyTab="/data/tools/bigdata/kerberos/hdfs.keytab"
  storeKey=true
  useTicketCache=false
  principal="zookeeper/hadoop01@HADOOP.COM";
};

Client {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  keyTab="C:/ProgramData/MIT/Kerberos5/hdfs.keytab"
  storeKey=true
  useTicketCache=false
  principal="cli@HADOOP.COM";
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装Kerberos客户端
  • 登录
    • 具体步骤
      • 问题
      • 连接Hive
      • 连接Phoenix
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档