Hive Kerberos 用户认证

网友投稿 502 2022-11-21

Hive Kerberos 用户认证

1、Hive用户认证配置

1.1 前置要求

1.1.1 Hadoop集群启动Kerberos认证

按照上述步骤为Hadoop集群开启Kerberos安全认证。

1.1.2 创建Hive系统用户和Kerberos主体

​1.创建系统用户​

[root@hadoop01 ~]# useradd hive -g hadoop

[root@hadoop01 ~]# useradd hive -g hadoop[root@hadoop01 ~]# echo hive | passwd --stdin hive[root@hadoop02 ~]# useradd hive -g hadoop[root@hadoop02 ~]# echo hive | passwd --stdin hive[root@hadoop03 ~]# useradd hive -g hadoop[root@hadoop03 ~]# echo hive | passwd --stdin hive

​2.创建Kerberos主体并生成keytab文件​

创建hive用户的Kerberos主体

[root@hadoop01 ~]# kadmin -padmin/admin -wadmin -q"addprinc -randkey hive/hadoop01"

在Hive所部署的节点生成keytab文件

[root@hadoop01 ~]# kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/hive.service.keytab hive/hadoop01"

​3.修改keytab文件所有者和访问权限​

[root@hadoop01 ~]# chown -R root:hadoop /etc/security/keytab/

[root@hadoop01 ~]# chmod 660 /etc/security/keytab/hive.service.keytab

1.2 配置认证

官方hive配置:~]# vim $HIVE_HOME/conf/hive-site.xml

hive.server2.authentication kerberos hive.server2.authentication.kerberos.principal hive/hadoop01@EXAMPLE.COM hive.server2.authentication.kerberos.keytab /etc/security/keytab/hive.service.keytab hive.metastore.sasl.enabled true hive.metastore.kerberos.keytab.file /etc/security/keytab/hive.service.keytab hive.metastore.kerberos.principal hive/hadoop01@EXAMPLE.COM

​​2.修改$HADOOP_HOME/etc/hadoop/core-site.xml文件​​

[root@hadoop01 ~]# vim $HADOOP_HOME/etc/hadoop/core-site.xml

1)删除以下参数

hadoop. duo hadoop.proxyuser.duo.hosts * hadoop.proxyuser.duo.groups * hadoop.proxyuser.duo.users *

2)增加以下参数

hadoop.proxyuser.hive.hosts * hadoop.proxyuser.hive.groups * hadoop.proxyuser.hive.users *

​3.分发配置core-site.xml文件​

[root@hadoop01 ~]# xsync $HADOOP_HOME/etc/hadoop/core-site.xml

​4.重启Hadoop集群​

[root@hadoop01 ~]# stop-dfs.sh

[root@hadoop01 ~]# stop-dfs.sh[root@hadoop02 ~]# stop-yarn.sh[root@hadoop01 ~]# start-dfs.sh[root@hadoop02 ~]# start-yarn.sh

1.3 启动hiveserver2

注:需使用hive用户启动

[root@hadoop01 ~]# sudo -i -u hive hiveserver2

2、Hive Kerberos认证使用说明

以下说明均基于普通用户

2.1 beeline客户端

​1.认证,执行以下命令,并按照提示输入pw​

[duo@hadoop01 ~]$ kinit duo

​2.使用beeline客户端连接hiveserver2​

[duo@hadoop01 ~]$ beeline

使用如下url进行连接

\> !connect jdbc:hive2://hadoop01:10000/;principal=hive/hadoop01@EXAMPLE.COM

2.2 DataGrip客户端

2.2.1 新建Driver

1.创建Driver

2.配置Driver

url模板:​​jdbc:hive2://{host}:{port}/{database}[;<;,{:identifier}={:param}>]​​

2.2.2 新建连接

​1.创建连接​

​2.配置连接​

1)基础配置

jdbc:hive2://hadoop01:10000/;principal=hive/hadoop01@EXAMPLE.COM

2)高级配置

配置参数:

-Djava.security.krb5.conf="C:\\ProgramData\\MIT\\Kerberos5\\krb5.ini"

-Djava.security.auth.login.config="C:\\ProgramData\\MIT\\Kerberos5\\duoduo.conf"

-Djavax.security.auth.useSubjectCredsOnly=false

3)编写JAAS(Java认证授权服务)配置文件,内容如下,文件名和路径须和上图中

com.sun.security.jgss.initiate{

com.sun.security.auth.module.Krb5LoginModule required

useKeyTab=true

useTicketCache=false

keyTab="C:\\ProgramData\\MIT\\Kerberos5\\duoduo.keytab"

principal="duoduo@EXAMPLE.COM";

};

4)为用户生成keytab文件,在krb5kdc所在节点(hadoop01)执行以下命令

[root@hadooop102]# kadmin.local -q"xst -norandkey -k /home/duo/duoduo.keytab duo"

5)将上一步生成的duo.keytab文件,置于Windows中的特定路径,该路径须与3)中的keyTab属性的值保持一致。

6)测试连接

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解析mybatis
下一篇:基于FPGA的DDR3用户接口设计技术详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~