HiveServer2集成LDAP做用户认证

时间:2024-05-22 16:57:43

HiveServer2支持多种认证方式,通过hive.server2.authentication参数来设置,包括nosasl, none, ldap, kerberos, pam, custom

本文介绍如何在E-MapReduce中使用LDAP配置HiveServer的认证。

配置

配置 备注
hive.server2.authentication LDAP xx
hive.server2.authentication.ldap.url ldap://{emr-header-1-hostname}:10389 {emr-header-1-hostname}以自己集群为准,可以登录集群的emr-header-1上执行hostname命令获取
hive.server2.authentication.ldap.baseDN ou=people,o=emr

在E-MapReduce的集群配置管理下的Hive组件中添加上述3个配置后,重启一下HiveServer2,即可以生效。

LDAP中添加账号

E-MapReduce集群中ApacheDS组件就是一个LDAP的服务,默认用于knox的用户账号管理, 我们可以复用knox的账号体系。

设置knox的账号参考文档 -> 设置Knox用户 -> 使用集群中的LDAP服务 -> 方式一(推荐)

设置完账号后,就可以用账号密码去连HiveServer2了。

测试

如添加了emr-guest账号以及密码,现在用/usr/lib/hive-current/bin/beeline去登录连接HiveServer2
beeline> !connect jdbc:hive2://emr-header-1:10000/
Enter username for jdbc:hive2://emr-header-1:10000/: emr-guest
Enter password for jdbc:hive2://emr-header-1:10000/: emr-guest-pwd
Transaction isolation: TRANSACTION_REPEATABLE_READ

如上可以正常连接。

如果使用的密码不正确,则会抛如下异常:
Error: Could not open client transport with JDBC Uri: jdbc:hive2://emr-header-1:10000/: Peer indicated failure: Error validating the login (state=08S01,code=0)

HiveServer2集成LDAP做用户认证