Cloudera Impala 氏

これらのインストラクションを使用するダイアレクト

Cloudera Impala は、このページで説明するデータベース設定の要件を共有しています。

Cloudera Impala に接続するための Looker の構成

Looker は JDBC 接続を介して任意のデータベースに接続します。デフォルトでは、Cloudera Impala では、これはポート 21050 で impalad デーモンを実行するサーバーです。

Looker の [Admin] セクションで [Connections] を選択し、[Add Connection] をクリックします。

Looker の接続構成は、使用しているセキュリティに依存します。

Kerberos またはユーザー認証なしでクラスタに接続する

Kerberos またはユーザー認証を使用していない接続を構成するには:

  1. [Connection Settings] ページで、[Username] と [Password] を空白のままにします。(フィールド名の横の * は、これらのフィールドが必須であることを示していますが、必須ではありません)。
  2. [Additional Params] フィールドに「;auth=noSasl」と入力します。

接続文字列の確認

ログファイルの JDBC 接続文字列を確認するには、Looker の [管理] パネルの左側のメニューで [ログ] をクリックします。次に、jdbcnoSasl などの用語でログをフィルタします。

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 ユーザーの PATHJAVA_HOME にインストールする必要があります。必要に応じて、looker ディレクトリにローカルにインストールします。

Java 暗号拡張機能
  1. Oracle のウェブサイトから Java 8 用の Java 暗号拡張機能(JCE)をダウンロードしてインストールします。

    • Java インストールの jre/lib/security ディレクトリを探します。
    • このディレクトリから JAR ファイル local_policy.jarUS_export_policy.jar を削除します。
    • これら 2 つのファイルを、JCE Unlimited Strength Jurisdiction Policy Files のダウンロードに含まれている JAR ファイルに置き換えます。

    JCE がインストールされている Java 8 より前のバージョンの Java を使用できる場合もありますが、この方法はおすすめしません。

  2. Java と source ~/.bash_profile の正しいインストールを指すように ~looker/.bash_profileJAVA_HOMEPATH を更新するか、ログアウトして再度ログインします。

  3. java -version を使用して Java のバージョンを確認します。

  4. 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 による認証

ユーザー認証
  1. krb5.conf/etc/ にない場合は、環境変数 KRB5_CONFIG を使用してロケーションを示してください。

  2. klist コマンドを実行して、Kerberos チケット キャッシュに有効なチケットがあることを確認します。

  3. チケットがない場合は、kinit username@REALM または kinit username を実行してチケットを作成します。

  4. 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 ファイルの変更が必要になることがあります。

接続をテストして、正しく構成されていることを確認します。

デバッグ

関連情報

メモ

PDT のスクラッチ スキーマに接続するユーザーには、読み取り/書き込み権限が必要です。

Reference

詳細については、Cloudera ドキュメントの JDBC と連携する Impala の構成をご覧ください。

機能のサポート

一部の機能については、Lookerでサポートするには、データベースダイアレクトが同じ機能に対応している必要があります。

Looker の最新リリースでは、Cloudera Impala は以下の Looker 機能をサポートしています。

Looker の最新リリースでは、Cloudera Impala 3.1+ が次の Looker 機能をサポートしています。

次のステップ

データベースを Looker に接続したら、ユーザーのログイン オプションを構成します。