文档首页/ MapReduce服务 MRS/ 最佳实践/ 生态组件对接/ MRS Hive对接外部LDAP配置说明
更新时间:2024-12-17 GMT+08:00

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操作。

图1 Hive结构

约束与限制

  • 需要在Manager的“系统 > 权限 > 用户”界面上创建一个LDAP中已存在的同名用户,并添加“hive”和“hadoop”用户组,该用户用于HiveServer的健康检查。
  • 本章节配置说明适用于MRS 3.1.0及之后版本。

步骤一:配置LDAP认证

  1. 登录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健康检查所使用的用户对应的密码。

    -

  2. 修改完成后,单击左上方“保存”,在弹出的对话框中单击“确定”保存配置。
  3. 单击“实例”,勾选配置状态为“配置过期”的实例,选择“更多 > 重启实例”重启受影响的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”查看。