windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案

需要插件:
1、dbeaver(hive数据库可视化管理工具)
2、Hadoop(由于windows不支持需要单独引用)
3、Hive_jdbc(hive数据库连接驱动)
4、Kfw-4.1(kerberos客户端)
5、Jdk1.8.151
6、数据源方提供keytab认证文件以及krb5.conf配置文件

一、dbeaver连接hive数据库

1、安装kerberos客户端
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第1张图片
2、安装成功后会在环境变量path中自动生成相关配置,由于JDK自带klist相关命令,所以需要把kerberos相关环境变量调整的靠前些。
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第2张图片
3、Krb5.ini配置,文件路径C:\ProgramData\MIT\Kerberos5,此文件可能是一个隐藏文件,直接输入路径可打开,将krb5.conf文件有选择的粘贴到krb5.ini里面。
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第3张图片
4、配置环境变量
KRB5_CONFIG =C:\ProgramData\MIT\Kerberos5\krb5.ini
KRB5CCNAME =C:\temp\krb5cache
KRB5CCNAME为认证成功后生成的认证缓存文件存放路径及文件名,要确保C:\temp路径存在(手动创建),krb5cache是认证成功后自动生成的。
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第4张图片
5、配置hosts文件,文件路径C:\Windows\System32\drivers\etc,添加IP映射,主要是kdc以及后面用到的hiveserver2的机器(如果有zookeeper最好也配置下)
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第5张图片
6、通过数据源提供的keytab.key进行认证获取票据,其中第一个参数是keytab文件绝对路径,第二个参数是principal(可以理解成账号,需要跟keytab文件对应,否则会出错)
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第6张图片
7、认证成功后可以在kerberos客户端发现认证信息。
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第7张图片
8、由于认证票据存在有效时间,所以windows下可利用SCHTASKS命令(可百度该命令用法)定时调度获取票据。
在这里插入图片描述
9、 配置dbeaver参数,打开dbeaver.ini文件新增如下参数(其中第二个参数就是上3中对应的krb5.ini文件路径)
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=“C:\ProgramData\MIT\Kerberos5\krb5.ini”
-Dsun.security.krb5.debug=true
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第8张图片
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第9张图片

10、新建spache Hive数据库连接,添加hivejdbc驱动文件
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第10张图片
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第11张图片
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第12张图片

11、配置URL模板,其中principal与6中账号参数保持一致,KrbRealm参数与conf配置文件中保持一致,hive服务默认端口9999;测试链接成功。
jdbc:hive2://{host}[:{port}][/{database}];principal=bdms_test.mask/[email protected];AuthMech=1;KrbRealm=BDMS.163.COM;KrbHostFQDN={host};KrbServiceName=hive;KrbAuthType=2
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第13张图片

二、Jdbc连接hive数据库

1、新增JAVA_HOME、hadoop环境变量,其中jdk采用1.8.151版本(部署生产时发现1.8.141版本会出现获取不到认证密钥的情况)
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第14张图片
2、添加maven依赖,其中com.cloudera.hive.jdbc驱动由于镜像源问题无法下载,手工下载相应jar包(一中第10步对应驱动)并install到本地maven仓库使用。
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第15张图片
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第16张图片
3、hive数据源参数设置(使用zookeeper集群配置暂时未成功)
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第17张图片
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第18张图片

4、获取票据登录hive数据库,这里的参数与3中的dmp参数一一对应。
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第19张图片
5、正常登录获取打印日志(开启打印日志见4中debug参数)
windows环境通过客户端和jdbc连接kerberos认证Hive数据库集群解决方案_第20张图片
至此,windows环境通过jdbc连接kerberos认证Hive数据库集群个人经验介绍完毕,有错误欢迎指正。

你可能感兴趣的:(java,hive,数据库,windows,java)