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)
