MRS Hive对接外部LDAP配置说明
应用场景
本章节介绍Hive如何对接外部LDAP并访问HiveServer。
为了管理集群中数据与资源的访问控制权限,在安全模式下,客户端应用程序在访问集群中的任意资源之前均需要通过身份认证,建立安全会话链接。
MRS通过KrbServer为所有组件提供Kerberos认证功能,实现了可靠的认证机制。
LdapServer支持轻量目录访问协议(Lightweight Directory Access Protocol,简称为LDAP),为Kerberos认证提供用户和用户组数据保存能力。
方案架构
Hive是建立在Hadoop上的数据仓库框架,提供大数据平台批处理计算能力,能够对结构化/半结构化数据进行批量分析汇总完成数据计算。提供类似SQL的Hive Query Language语言操作结构化数据,其基本原理是将HQL语言自动转换成MapReduce任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。
Hive主要特点如下:
- 海量结构化数据分析汇总。
- 将复杂的MapReduce编写任务简化为SQL语句。
- 灵活的数据存储格式,支持JSON、CSV、TEXTFILE、RCFILE、SEQUENCEFILE、ORC等存储格式。
Hive作为一个基于HDFS和MapReduce架构的数据仓库,其主要能力是通过对HQL(Hive Query Language)编译和解析,生成并执行相应的MapReduce任务或者HDFS操作。
约束与限制
- 需要在Manager的“系统 > 权限 > 用户”界面上创建一个LDAP中已存在的同名用户,并添加“hive”和“hadoop”用户组,该用户用于HiveServer的健康检查。
- 本章节配置说明适用于MRS 3.1.0及之后版本。
步骤一:配置LDAP认证
- 登录Manager界面,选择“集群 > 服务 > Hive > 配置 > 全部配置 > HiveServer(角色) > 安全”,配置以下参数:
表1 配置LDAP认证参数 参数名称
参数描述
参数取值示例
hive.server2.authentication
用于指定HiveServer的认证方式,取值范围为“KERBEROS”或“LDAP”,需设置为“LDAP”。
LDAP
hive.server2.authentication.ldap.baseDN
LDAP服务用户所在的Base DN。
-
hive.server2.authentication.ldap.password
约束与限制中创建的与LDAP中同名的用户密码,即HiveServer健康检查所使用的用户对应的密码。
-
hive.server2.authentication.ldap.url.ip
仅适用于MRS 3.5.0之前版本,用于指定LDAP IP地址。
-
hive.server2.authentication.ldap.url.port
仅适用于MRS 3.5.0之前版本,用于指定LDAP端口,默认值为389。
389
hive.server2.authentication.ldap.url
仅适用于MRS 3.5.0及之后版本,用于指定连接LDAP服务的URL,格式为:ldap://${ldap_host}:${ldap_port}。其中,
说明:- ${ldap_host}为LDAP服务的主机名或IP地址,${ldap_port}为LDAP服务的的端口号。
- 必须确保配置的LDAP服务主机名或者IP与HiveServer节点互通。如果URL中配置的LDAP主机名,则需要在HiveServer节点的“/etc/hosts”文件中配置相应LDAP主机名和IP映射关系。
ldap://xxx:xxx
hive.server2.authentication.ldap.userDNPattern
在此目录中查找用户DN时使用的模式列表,如果该参数值有多个,使用“:”分隔。
cn=%s,ou=People1,dc=huawei,dc=com: cn=%s,ou=People2,dc=huawei,dc=com
hive.server2.authentication.ldap.username
约束与限制中创建的与LDAP中同名的用户密码,即HiveServer健康检查所使用的用户对应的密码。
-
- 修改完成后,单击左上方“保存”,在弹出的对话框中单击“确定”保存配置。
- 单击“实例”,勾选配置状态为“配置过期”的实例,选择“更多 > 重启实例”重启受影响的Hive实例。
步骤二:访问HiveServer
开启LDAP认证后,访问HiveServer需要提供LDAP的用户名和密码。即可在Hive客户端节点执行以下命令连接HiveServer:
beeline -u "jdbc:hive2://${hs_ip}:${hs_port}" -n ${user} -p ${password}
相关参数说明如下:
- ${user}:访问HiveServer的LDAP的用户名。
- ${password}:访问HiveServer的LDAP用户密码。
- ${hs_ip}:MRS集群HiveSever实例部署节点的业务IP,可以在Manager界面,选择“集群 > 服务 > Hive > 实例”中查看 。
- ${hs_port}:MRS集群HiveServer的端口号,可以在“客户端安装目录/Hive/config/hive-site.xml”文件中搜索配置项“hive.server2.thrift.port”查看。