一、DBeaver连接Kerberos认证下的hive

1.配置本地hosts

因为Kerberos认证过程及集群服务中,很多是以主机名的形式进行访问的,所以工作机要设置hosts. 域名映射,我们通过部署CDH的集群的每一台机器都已经配置了host(文件为/etc/hosts),工作机也需要配置window的host文件,如果提示无法修改,一般是需要管理员权限的原因,比较简单的方式是先将文件移出来,修改完成之后再放进去。

hosts文件路径为:

hive 添加kerberos认证 hive的kerberos认证_大数据

2.配置window环境(变量和配置文件)

2.1安装Kerberos客户端

下载地址:https://web.mit.edu/kerberos/dist/index.html 选择msi安装包,然后一路next即可安装完成。选择是否要重启电脑的时候选择no,稍后统一重启。

2.2配置window环境(变量和配置文件)

2.2.1配置krb5.ini

在上一步安装完成的Kerberos客户端的时候,会默认生成C:\ProgramData\MIT\Kerberos5\krb5.ini文件,根据已经存在的KDC Server上的/etc/krb5.conf,拷贝部分内容到krb5.ini中,如果直接将krb5.conf文件更名为krb5.ini并替换krb5.ini,会出现文件格式问题导致MIT Kerberos客户端无法正常启动。

2.2.2 配置环境变量

配置环境变量krb5.ini以及Kerberos Credential Cache File的路径,

变量名:KRB5_CONFIG

变量值:C:\ProgramData\MIT\Kerberos5\krb5.ini。

变量名:KRB5CCNAME,变量值:C:\temp\krb5cache。

KRB5CCNAME的路径默认是不存在的,因此需要在C盘下创建temp文件夹,krb5cache文件则不需要创建。

2.3 DBeaver 配置

2.3.1 DBeaver配置修改

因为DBeaver是通过JDBC的方式访问Hive,底层也是基于Java环境,所以这里需要在DBeaver的配置中增加JVM的参数,添加关于Kerberos相关的配置。进入DBeaver的安装目录,找到dbeaver.ini配置文件,在配置文件末尾增加如下配置,重新启动DBeaver客户端。

hive 添加kerberos认证 hive的kerberos认证_hive_02

2.3.2 DBeaver 连接配置修改

测试通过基于Cloudera驱动创建的连接,下面以这种方式

下载驱动地址如下:

https://www.cloudera.com/downloads/connectors/hive/jdbc/2-6-5.html

hive 添加kerberos认证 hive的kerberos认证_hive_03

下载完成后,解压得到里面的HiveJDBC41.jar 这个驱动包,这个包里面包含了完整的依赖,然后进入DBeaver的驱动设置界面。

hive 添加kerberos认证 hive的kerberos认证_hive_04


hive 添加kerberos认证 hive的kerberos认证_安全架构_05


hive 添加kerberos认证 hive的kerberos认证_客户端_06

设置完驱动之后,修改URL模板,在URL模板中增加如下参数:

;AuthMech=1;KrbRealm=MYCDH.COM;KrbHostFQDN={host};KrbServiceName=hive;KrbAuthType=2

hive 添加kerberos认证 hive的kerberos认证_大数据_07

2.4 进行Kerberos认证

2.4.1 打开Kerberos客户端

从桌面的快捷方式进入,进入后如下

hive 添加kerberos认证 hive的kerberos认证_hive_08

2.4.2 调整Kerberos环境变量位置

因为kinit命令跟JDK有冲突,所以要将环境变量Path中,dbeaver的顺序放到JDK之前

hive 添加kerberos认证 hive的kerberos认证_大数据_09

2.4.3 DOS端口进行Kerberos认证登录

hive 添加kerberos认证 hive的kerberos认证_hive_10

该步骤需要先将hive.keytab 放入F盘下,登录之后Kerberos客户端会显示登录的票据。

2.4.4 重启工作机

然后再重新打开DBeaver 连接测试。