作者:路见不平出手打_418 | 来源:互联网 | 2023-09-12 15:17
背景
以前的Hadoop平台没有进行安全方面的认证,kettle可以通过正常的jdbc方式连接到Hive;当Hadoop集群上了Kerberos安全系统后,需要一些额外的配置,才能有访问Hive的权限。
配置步骤
1、Kerberos票据授权准备工作
a、需先生成Kerberos的Keytab文件, 例如:hive_test.keytab
b、keytab文件复制到Kettle服务器的 /etc目录下
c、获得Kerberos 票据授权票据:
kinit -kt /etc/hive_test.keytab hive/test@GITHUP.IO
d、klist命令确认票据授权票据是否生成
2、创建认证登录文件
在/etc目录下创建kettle.login:
com.sun.security.jgss.initiate{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
useTicketCache=false
keyTab="/etc/hive_test.keytab"
principal="hive/test@GITHUP.IO"
dOnotPrompt=true
debug=true
debugNative=true;
};
参数值说明:
a、KeyTab:是第一步生成的KeyTab文件
b、principal:登录hive服务的用户
3、spoon.sh参数配置
在OPT参数中新增一下配置:
-Djava.security.auth.login.cOnfig=/etc/kettle.login
-Djava.security.krb5.realm=GITHUP.IO
-Djava.security.krb5.kdc=192.168.5.13
-Djavax.security.auth.useSubjectCredsOnly=false
4.1、Kettle通过JDBC连接的配置
主机名:Hive2 Server地址(如:192.168.5.1)
数据库名称:default;principal=hive/dev-bi-cdh01@GITHUP.IO
端口号:hive2的端口号(如:10000)
用户名&密码:留空
因是通过kerberos认证的,用户名&密码为空
4.2、Kettle通过JNDI连接的配置
a、Kettle安装目录下的simple-jndi/jdbc.properties:
hive-dev/type=javax.sql.DataSource
hive-dev/driver=org.apache.hive.jdbc.HiveDrive
hive-dev/url=jdbc:hive2://dev-bi-cdh01:10000/default;principal=hive/dev-bi-cdh01@GITHUP.IO;
hive-dev/user=
hive-dev/password=
b、数据库连接中选择Mysql的JNDI,然后输入JNDI名称:hive-dev
hive的连接里没有JNDI选项,只要选择一个RDBMS的JNDI就可以