Spark连接Hive及Kerberos安全认证、dbeaver连接Hive及Kerberos安全认证【Windows环境】

1,Kerberos安全认证 (使用角度)

下载&安装

配置文件参数调整

  • 将集群的/etc/krb5.conf 文件内容粘贴到 windows 配置文件 C:\ProgramData\MIT\Kerberos5\krb5.ini 中,如图所示

  • 调整文件中的参数 default_ccache_name 设置cache的位置为 C:\temp\krb5cc其他位置会导致权限有问题,无法生成票据

环境变量配置(连接dbeaver需要)

  • 在系统变量Path 中 配置 C:\Program Files\MIT\Kerberos\bin 需要将其的位置,置顶(由于java中也有相似的命令)我们用到的是Kerberos中的 kinit、klist命令,如图

  • 系统参数配置变量名:KRB5_CONFIG,变量值:C:\ProgramData\MIT\Kerberos5\krb5.ini

  • 系统参数配置变量名:KRB5CCNAME,变量值:C:\temp\krb5cache (MIT票据缓存的地址),如图
    KRB5CCNAME的路径默认是不存在的,因此需要在C盘下创建temp文件夹,krb5cache文件则不需要创建

配置hosts文件

  • 配置windows下主机地址,服务器集群地址 /etc/hosts 内容粘贴到本地windows hosts中,如下图

重启

提示:其实在客户端安装好后,就提示重启。
这里任何修改配置文件或者环境变量的都需要重启,比如修改 C:\ProgramData\MIT\Kerberos5\krb5.ini中的内容,必须重启

2,配置dbeaver并采用安全认证连接Hive

在配置好Kerberos认证后,需要连接数据库连接工具连接Hive,此时选择dbeaver连接Hive

1,由于使用票据,没有用户名密码,所以要在dbeaver配置文件中配置连接信息
2,修改url地址,并选择驱动类

下载外置驱动,可参考下列文章
https://blog.csdn.net/fracly/article/details/121819030

修改配置文件

  • 在程序安装目录找到 dbeaver.ini,并添加如下参数,需要调整的可能就是配置文件的位置啦,如果默认安装,则不需要调整
    -Djavax.security.auth.useSubjectCredsOnly=false
    -Djava.security.krb5.conf="C:\ProgramData\MIT\Kerberos5\krb5.ini"
    -Dsun.security.krb5.debug=true
    

修改连接参数

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

如图

重启 dbeaver,连接测试


3,本地IDEA创建spark项目kerberos认证方式连接Hive测试

将集群中的配置文件copy的程序的classpath下,如图

设置kerberos认证变量

 System.setProperty("java.security.krb5.conf", "D:\\ideaProjects\\empi\\empi-spark\\src\\main\\resources\\krb5.ini");
 System.setProperty("HADOOP_USER_NAME", "hive");
 System.setProperty("user.name", "hive");
 UserGroupInformation.loginUserFromKeytab("hive/node01.xxx.test@xxx.COM","D:\\ideaProjects\\empi\\empi-spark\\src\\main\\resources\\hive.service.keytab");

参考文章

https://blog.csdn.net/fracly/article/details/121819030

posted @ 2022-08-02 16:30  iullor  阅读(2875)  评论(0编辑  收藏  举报