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的賬號參考
設定完賬號後,就可以用賬號密碼去連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)