05-如何为Hive集成AD认证

时间:2022-06-13
本文章向大家介绍05-如何为Hive集成AD认证,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.文档编写目的


Fayson在前面的文章《01-如何在Window Server 2012 R2搭建Acitve Directory域服务》、《02-Active Directory安装证书服务并配置》、《03-Active Directory的使用与验证》和《04-如何在RedHat7上配置OpenLDAP客户端及集成SSSD服务和集成SSH登录》,前面完成了AD服务的基本集成接下来就来实现与CDH各个服务的集成。本篇文章Fayson主要介绍Hive与AD集成。

  • 内容概述

1.Hive与AD集成配置

2.AD集成测试

3.单个HiveServer2与AD集成

  • 测试环境

1.CM和CDH版本为5.15.0

2.集群已启用Kerberos

3.Window Server2012 R2

2.Hive配置全局AD认证


1.登录CM的Web控制台,进入Hive服务搜索“LDAP”,修改配置如下:

参数

说明

启用LDAP身份验证

true

勾选启用LDAP认证

LDAP URL

ldap://adserver.fayson.com

访问AD的URL

Active Directory域

fayson.com

在AD中配置的域

修改完AD相关的配置后,回到CM主页根据提示重启相应服务

3.AD集成测试


在前面通过配置已完成Hive与AD的集成,接下来使用beeline进行测试。

1.在AD上创建测试用户testa并将用户加入groupa组中

在命令行确认testa用户是否存在

[root@cdh03 ~]# more /etc/passwd |grep testa
[root@cdh03 ~]# id testa
uid=580201119(testa) gid=580201115(groupa) groups=580201115(groupa)
[root@cdh03 ~]# 

(可左右滑动)

2.使用hive管理员账号为groupa组授予default库的所有权限

[root@cdh03 ~]# kinit hive/admin
[root@cdh03 ~]# beeline 
beeline> !connect jdbc:hive2://cdh01.fayson.com:10000/;principal=hive/cdh01.fayson.com@FAYSON.COM
0: jdbc:hive2://cdh01.fayson.com:10000/> create role groupa_role;
0: jdbc:hive2://cdh01.fayson.com:10000/> grant all on database default to role groupa_role;
0: jdbc:hive2://cdh01.fayson.com:10000/> grant role groupa_role to group groupa;
0: jdbc:hive2://cdh01.fayson.com:10000/> 

(可左右滑动)

3.在命令行使用beeline登录HiveServer2

[root@cdh03 ~]# beeline 
beeline> !connect jdbc:hive2://cdh01.fayson.com:10000
Enter username for jdbc:hive2://cdh01.fayson.com:10000: testa
Enter password for jdbc:hive2://cdh01.fayson.com:10000: ******

(可左右滑动)

在命令行使用错误的用户密码登录,显示如下错误

使用正确的密码登录,可以成功访问HiveServer2服务

执行SQL查询

执行MapReduce作业

4.为单个HiveServer2配置AD认证


前面的配置可以对所有的HiveServer2服务生效,那么也可以针对单个HiveServer2服务进行配置,操作如下:

1.进入Hive实例列表,选择需要集成AD认证的HiveServer2服务,进入配置界面,在hive-site.xml中增加如下配置

<property>
    <name>hive.server2.authentication</name>
    <value>LDAP</value>
</property>
<property>
    <name>hive.server2.authentication.ldap.url</name>
    <value>ldap://adserver.fayson.com</value>
</property>
<property>
    <name>hive.server2.authentication.ldap.Domain</name>
    <value>fayson.com</value>
</property>

(可左右滑动)

保存配置,并重启该HiveServer2服务即可,使用beeline测试与上面步骤一致。

5.总结


1.确保集群所有节点已配置AD集成SSH登录并通过sssd同步用户

2.使用HiveCli命令可以绕过AD认证,未确保Hive访问的安全,这里我们可以禁用HiveCLI,具体禁用可以参考Fayson前面讲的《如何在CDH启用Kerberos的情况下安装及使用Sentry(一)》、《如何在CDH启用Kerberos的情况下安装及使用Sentry(二)》和《Hive CLI禁用补充说明》。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。