以前、私たちはImpalaやHiveエディタでSSL暗号化を使用する方法の詳細について紹介しました。今回の記事は、認証なしまたはKerberosを使用する代わりに、LDAP認証を使用する方法についてのステップバイステップガイドです。
N注:これにはHue 3.7またはCDH5.2が必要です
HiveServer2はSSLが有効なので、HiveエディタはHiveServer2に接続できませんでした。HiveServer2のログは、受け取った平文でのSSLエラーを示します(原因を調べるための良いヒントです)
Hueの安全バルブににこれを追加することで解決しました:
[beeswax]
[[ssl]]
## SSL communication enabled for this server.
enabled=false
## Path to Certificate Authority certificates.
cacerts=/etc/hue/cacerts.pem
## Path to the private key file.
key=/etc/hue/key.pem
## Path to the public certificate file.
cert=/etc/hue/cert.pem
## Choose whether Hue should validate certificates received from the server.
validate=false
(その証明書がワイルドカードを使用しており、これが他のエラーの原因となっているため、validateはfalseでした)
注:SSLを使用しない場合は、次のバグにヒットします: HUE-2484
変更を行った後にHueの同じ動作が発生しましたが、今度のHiveServer2のログには、err=49による認証失敗を示しました。
そこで、Hueの安全バルブに以下のように追加しました:
[desktop]
ldap_username=
ldap_password=
Hueはまだ同じ挙動を示していました。HiveServer2ログは以下のように示していました:
<HUE_LDAP_USERNAME> is not allowed to impersonate bob
core-site.xmlのためにHDFS ->Service-Wide -> Advanced -> 安全バルブに以下を追加することで解決しました。
<property>
<name>hadoop.proxyuser.<HUE_LDAP_USERNAME>.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.<HUE_LDAP_USERNAME>.groups</name>
<value>*</value>
</property>
この後、デフォルトのデータベースが表示されていましたが、show tables やその他の何も行うことが出来ませんでした。beelineは同じ挙動でした。
私たちは、Hive アクションを試みているユーザー who にグループへのgrantを行い、その問題は収まりました。すべてのクエリは動作し、HueはHive/Impalaをクエリして結果を返しました!
いつものように、コメントとフィードバックは hue-user メーリングリストや@gethueまでお気軽に!