【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix

一、下载驱动

cloudera官网

1.1 官网页面下载

下载页面 的Database Drivers 挑选比较新的版本即可。
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第1张图片

1.2 集群下载

Hive可能集群没有驱动包。驱动包名称:HiveJDBC42.jar。41结尾的包也可以使用的。注意Jar包的大小一定是十几MB的。几百KB的是thin包不可用。
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第2张图片
如下的jar是不可用的。

[root@mycentosprod lib]# ll -h | grep jdbc
-rw-r--r-- 1 root root  116K 99 2021 hive-jdbc-2.1.1-cdh6.2.0.jar

Phoenix 包名称:phoenix-5.0.0-cdh6.2.0-client.jar

-sh-4.2$ ll -h | grep client
-rw-r--r--. 1 root root 137M Dec 22  2022 phoenix-5.0.0-cdh6.2.0-client.jar

二、Hive连接(cache方式)

2.1 下载安装MIT KERBEROS客户端

MIT KERBEROS 下载较新的版本即可。
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第3张图片
下载之后一路默认安装即可。注意:不要修改软件安装位置。
修改系统环境变量中的Path。将刚刚的安装路径置顶。(不置顶,也要比%JAVA_HOME%\binanaconda相关的高)
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第4张图片
使用CMD命令确认下:
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第5张图片

3.2 修改krb5.conf文件并创建krb5.ini配置文件

krb5.conf 一般存储在集群的/etc目录下。
其中conf文件中仅需要保留一下三大项中的内容即可。如果有此项renew_lifetime = 1800d需要删除或注释(行首添加#)

[libdefaults]
... ...
[realms]
... ...
[domain_realm]
... ...

krb5.conf复制一份并改名为krb5.ini即可。krb5.ini是供MIT KERBEROS软件使用的。
修改添加环境变量:
如下两个位置最好不要自定义,都在默认的MIT KERBEROS位置即可。避免不必要的麻烦。
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第6张图片
KRB5CCNAME是MIT KERBEROS软件自动创建的。

2.2 本地认证kerberos

向管理员索取Keytab文件。
打开打开keytab所在位置。按住shift点击右键点击open cmd windos here,打开CMD窗口。
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第7张图片

# 获取pricipal
klist -kt xxx.keytab
# 认证授权
kinit -kt xxx.keytab [email protected]
# 验证下
klist

验证结果:
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第8张图片
同时MIT KERBEROS软件也会获取到成功的结果:
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第9张图片

2.3 编辑驱动

【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第10张图片

2.5 编辑URL链接模板

【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第11张图片

【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第12张图片
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第13张图片
驱动URL链接模板

-- 注意:KrbAuthType=2;AuthMech=1 是固定的。
jdbc:hive2://{host}[:{port}][/{database}];KrbRealm=XXXXX.COM;KrbHostFQDN={host};KrbServiceName=hive;KrbAuthType=2;AuthMech=1

2.6 测试

【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第14张图片
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第15张图片

三、Phoenix连接

3.1 编写jass.conf

Client {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  storeKey=true
  useTicketCache=false
  keyTab="D:/xxx/xxx.keytab"
  principal="[email protected]";
};
com.sun.security.jgss.krb5.initiate {
  com.sun.security.auth.module.Krb5LoginModule required
  renewTGT=false
  doNotPrompt=true
  useKeyTab=true
  keyTab="D:/env/Kerberos/xxx.keytabs"
  principal="[email protected]"
  storeKey=true
  useTicketCache=false;
};

3.3 修改dbeaver.ini

打开dbeaver安装目录,找到dbeaver.ini文件进行编辑,追添加如下内容

-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=D:\xxx\krb5.conf
-Dsun.security.krb5.debug=true
-Djava.security.auth.login.config=‪‪D:\xxx\jaas.conf

3.4 获取集群配置文件

(1)hadoop的hdfs-site.xmlcore-site.xml配置文件
(2)hbase的hbase-site.xml
使用压缩工具(如360压缩)打开phoenix-5.0.0-cdh6.2.0-client.jar,将以上三个配置文件拖入空白处,即自动保存。

3.5 配置驱动

【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第16张图片

3.6 编辑驱动URL链接模板

【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第17张图片
路径可以在hbase-site.xml中获取

    <property>
      <name>zookeeper.znode.parentname>
      <value>/hbase-securevalue>
    property>

3.7 测试

【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第18张图片
【dbeaver】win环境的kerberos认证和Clouders集群中Kerberos认证使用Dbeaver连接Hive和Phoenix_第19张图片

四、参考连接:

DBeaver连接phoenix
Kerberos环境下使用Dbeaver链接Phoenix
Windows下Dbeaver连接设置Kerberos后的Hive和Phoenix

你可能感兴趣的:(hive,hadoop,数据仓库)