1. 程式人生 > >HiveServer2整合LDAP做使用者認證

HiveServer2整合LDAP做使用者認證

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)

_