これらのインストラクションを使用するダイアレクト
Cloudera Impala は、このページで説明するデータベース設定の要件を共有しています。
Cloudera Impala に接続するための Looker の構成
Looker は JDBC 接続を介して任意のデータベースに接続します。デフォルトでは、Cloudera Impala では、これはポート 21050 で impalad
デーモンを実行するサーバーです。
Looker の [Admin] セクションで [Connections] を選択し、[Add Connection] をクリックします。
Looker の接続構成は、使用しているセキュリティに依存します。
- Kerberos またはユーザー認証を使用していないクラスタ
- LDAP 認証が必要なクラスタ
- Kerberos で保護されているクラスタで、Apache Sentry は使用されていない
- SSL 証明書認証で保護されたクラスタ
Kerberos またはユーザー認証なしでクラスタに接続する
Kerberos またはユーザー認証を使用していない接続を構成するには:
- [Connection Settings] ページで、[Username] と [Password] を空白のままにします。(フィールド名の横の
*
は、これらのフィールドが必須であることを示していますが、必須ではありません)。 - [Additional Params] フィールドに「
;auth=noSasl
」と入力します。
接続文字列の確認
ログファイルの JDBC 接続文字列を確認するには、Looker の [管理] パネルの左側のメニューで [ログ] をクリックします。次に、jdbc
や noSasl
などの用語でログをフィルタします。
JDBC と連携するように Cloudera Impala を構成する方法の詳細については、Cloudera のドキュメントをご覧ください。
LDAP 認証が必要なクラスタへの接続
Apache Sentry と Kerberos を含むクラスタなど、LDAP 認証が必要なクラスタの場合は、[接続設定] ページで、Looker がアクセスするスキーマにアクセスできるユーザー名とパスワードを入力します。
Kerberos で保護されているクラスタに接続するが、Apache Sentry は使用しない
Looker アナリスト チームは、これを適切に構成するためにサポートが必要な場合があります。
通常、Cloudera 環境に対する Kerberos 認証は Apache Sentry によって処理されます。詳細については、Cloudera のドキュメントをご覧ください。
Kerberos 認証を使用して Looker を Cloudera Impala に直接接続するように構成する場合は、このページの手順に沿って操作してください。
Kerberos クライアント構成を設定する
まず、複数のソフトウェアをインストールし、Looker マシン上に複数のファイルが存在することを確認します。
Kerberos クライアント
kinit
を実行して、Kerberos クライアントが Looker マシンにインストールされていることを確認します。インストールされていない場合は、Kerberos クライアント バイナリをインストールします。
たとえば、Redhat/CentOS の場合は次のようになります。
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 は、Looker マシンと、Looker ユーザーの PATH
と JAVA_HOME
にインストールする必要があります。必要に応じて、looker
ディレクトリにローカルにインストールします。
Java 暗号拡張機能
Oracle のウェブサイトから Java 8 用の Java 暗号拡張機能(JCE)をダウンロードしてインストールします。
- Java インストールの
jre/lib/security
ディレクトリを探します。 - このディレクトリから JAR ファイル
local_policy.jar
とUS_export_policy.jar
を削除します。 - これら 2 つのファイルを、JCE Unlimited Strength Jurisdiction Policy Files のダウンロードに含まれている JAR ファイルに置き換えます。
JCE がインストールされている Java 8 より前のバージョンの Java を使用できる場合もありますが、この方法はおすすめしません。
- Java インストールの
Java と
source ~/.bash_profile
の正しいインストールを指すように~looker/.bash_profile
のJAVA_HOME
とPATH
を更新するか、ログアウトして再度ログインします。java -version
を使用して Java のバージョンを確認します。echo $JAVA_HOME
を使用してJAVA_HOME
環境変数を確認します。
gss-jaas.conf
looker
ディレクトリに、次の内容の gss-jaas.conf
ファイルを作成します。
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
テストに必要な場合は、次のように debug=true
をこのファイルに追加できます。
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
Looker を実行するサーバーには、有効な krb5.conf
ファイルも必要です。デフォルトでは、このファイルは /etc/krb5.conf
にあります。別の場所にある場合は、環境内で示す必要があります(シェル環境では KRB5_CONFIG
)。
場合によっては、別の Kerberos クライアント マシンからコピーする必要があります。
lookerstart.cfg
looker
ファイル(looker
起動スクリプトを含む同じディレクトリ)内に lookerstart.cfg
という次の行を含むファイルを作成して、gss-jaas.conf
ファイルと krb5.conf
ファイルにカーソルを合わせます。
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
krb5.conf
ファイルが /etc/krb5.conf
にない場合は、次の変数を追加する必要があります。
-Djava.security.krb5.conf=/path/to/krb5.conf
デバッグの場合、次の変数を追加します。
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
次に、./looker restart
を使用して Looker を再起動します。
Kerberos による認証
ユーザー認証
krb5.conf
が/etc/
にない場合は、環境変数KRB5_CONFIG
を使用してロケーションを示してください。klist
コマンドを実行して、Kerberos チケット キャッシュに有効なチケットがあることを確認します。チケットがない場合は、
kinit username@REALM
またはkinit username
を実行してチケットを作成します。Looker で使用されるアカウントはヘッドレス可能性が高いため、Kerberos から keytab ファイルを取得して、長期間使用できるように認証情報を保存できます。
kinit -k -t looker_user.keytab username@REALM
などのコマンドを使用して Kerberos チケットを取得します。
チケットの自動更新
cron ジョブを頻繁に実行して、アクティブなチケットを Kerberos のチケット キャッシュに保存します。この実行頻度は、クラスタの構成によって異なります。klist
には、チケットの有効期限を示します。
Looker 接続の設定
Looker の [Admin] セクションで [Connections] を選択し、[Add Connection] をクリックします。
次のように接続の詳細を入力します(詳細については、Looker のデータベースへの接続ページをご覧ください)。
- 名前: 接続の名前。これは、LookML モデルで接続の参照方法です。
- Dialect: Cloudera Impala または Cloudera Impala 3.1 以降。
- Host: ホスト名(ホスト名)。
- ポート: データベース ポート(デフォルトは 21050)。
- データベース: モデル化されるデフォルトのスキーマ / データベース。テーブルにデータベースが指定されていない場合、これが想定されます。
- Username: 空欄のままにします。
- Password: 空欄のままにします。
- 永続的な派生テーブル: 永続的な派生テーブルを使用するかどうかを確認します。
- 一時データベース: PDT を保存するための一時的なスキーマ / データベース。これは事前に作成する必要があります。
- 追加のパラメータ: JDBC 文字列の追加パラメータ。Kerberos プリンシパルを指定します(
;principal=impala/impala.company.com@REALM
など)。3 つの部分からなるプリンシパルが標準です。通常、最初の(impala
)はサービス名、最後の(REALM
)はレルムです。 - SSL: SSL 接続を使用する場合はチェックボックスをオンにします。SSL 証明書が広く認知されている認証局によって発行されておらず、カスタム証明書を使用している場合は、次の操作を行う必要があります。
- 証明書ファイルを Looker サーバーにコピーします。これは、お客様がホストする Looker のデプロイでのみご利用いただけます。
- 上記の [Additional Params] フィールドに次のパラメータを追加します。
sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword
Impala データベース用の正しい JDBC 文字列を作成する方法については、Cloudera のドキュメントをご覧ください。
- データベースのタイムゾーン: データベースに保存されているデータのタイムゾーン。通常は、空白のままにするか、UTC に設定できます。
サーバー名(この例では impala.company.com
)をサーバーの正規名にして、その IP アドレスの逆引き DNS ルックアップ結果をその名前にすることをおすすめします。ただし、サーバー名は Kerberos ドメイン コントローラに表示されているものにする必要があります。
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
サーバー名は、完全修飾ドメイン名ではなく、ホスト名に設定されていることがあります。この場合、逆引き参照が意図したとおりに解決されるように、/etc/hosts
ファイルと /etc/nsswitch.conf
ファイルの変更が必要になることがあります。
接続をテストして、正しく構成されていることを確認します。
デバッグ
- Impala の認証に関する問題のデバッグに関する Cloudera のドキュメント
- 構成にデバッグを追加すると、追加のデバッグ情報が
looker/logs/looker.log
に作成されます。
関連情報
- Impala の Kerberos 認証の有効化(Cloudera ドキュメント)
- kinit のマニュアル ページ
- klist のマニュアル ページ
- gss-jaas.conf のドキュメント
- Krb5LoginModule のドキュメント
メモ
PDT のスクラッチ スキーマに接続するユーザーには、読み取り/書き込み権限が必要です。
Reference
詳細については、Cloudera ドキュメントの JDBC と連携する Impala の構成をご覧ください。
機能のサポート
一部の機能については、Lookerでサポートするには、データベースダイアレクトが同じ機能に対応している必要があります。
Looker の最新リリースでは、Cloudera Impala は以下の Looker 機能をサポートしています。
Looker の最新リリースでは、Cloudera Impala 3.1+ が次の Looker 機能をサポートしています。
次のステップ
データベースを Looker に接続したら、ユーザーのログイン オプションを構成します。