天天看點

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)

HiveServer2內建LDAP做使用者認證