E-MapReduce (EMR) クラスター上の Impala に、コマンドラインインターフェイス (CLI) を使用して接続します。サポートされるツールは以下の 2 つです:
impala-shell — Impala のネイティブ CLI で、インタラクティブなクエリ実行に推奨されます
Beeline — HiveServer2 プロトコルを経由して Impala に接続する JDBC ベースのクライアント
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
クラスター作成時に Impala が選択された EMR クラスター。詳細については、「クラスターの作成」をご参照ください。
impala-shell を使用した接続
任意の Impalad ノードに接続できます。各ノードは、送信されたクエリの実行を協調的に処理するため、ノードの選択は任意です。接続前に、すべての利用可能なオプションを確認するには、impala-shell --help を実行してください。
共通クラスター
SSH でマスターノードにログインします。詳細については、「クラスターへのログイン」をご参照ください。
Impala に接続します:
impala-shell -i <impalad-node><impalad-node>は、任意の Impalad ノードのホスト名に置き換えてください。利用可能なノードを確認するには、EMR コンソールでクラスターの Impala サービスページを開き、ステータス タブをクリックします。トポロジーリスト セクションにノードのホスト名が表示されます(例:core-1-1またはcore-1-2)。
(任意)impala-shell を終了するには、
quit;を実行します。
ハイセキュリティクラスター
ハイセキュリティクラスターでは Kerberos 認証が使用されます。-k フラグを指定することで、接続時に Kerberos 認証を有効化できます。
SSH でマスターノードにログインします。詳細については、「クラスターへのログイン」をご参照ください。
Kerberos 認証情報を初期化します。
有効な認証情報が既に存在するかを確認します:
klist出力に
klist: No credentials cache foundと表示された場合は、認証情報の初期化を続行してください。有効な認証情報が表示された場合は、手順 3 に進んでください。keytab 内のプリンシパル名を確認します:
klist -k $IMPALA_CONF_DIR/impala.keytab出力の最初の行を保存してください。この値が次の手順で必要となるプリンシパル名です。例:
impala/master-1-1.c-45dcb9bbe234****.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE23****.COM
認証情報を初期化します:
kinit -k -t $IMPALA_CONF_DIR/impala.keytab <principal><principal>は、直前の手順で保存したプリンシパル名に置き換えてください。
Kerberos 認証を使用して Impala に接続します:
impala-shell -k -i <impalad-node>(任意)impala-shell を終了するには、
quit;を実行します。
Beeline を使用した接続
Beeline は、ポート 28000 上の HiveServer2 プロトコルを介して JDBC 経由で Impala に接続します。
共通クラスター
SSH でマスターノードにログインします。詳細については、「クラスターへのログイン」をご参照ください。
Impala に接続します:
beeline -u 'jdbc:hive2://<impalad-node>:28000/default;transportMode=http;uauth=noSasl'パラメーター 説明 <impalad-node>任意の Impalad ノードのホスト名。ノード名は、EMR コンソールでクラスターの Impala サービスページを開き、ステータス タブの トポロジーリスト で確認できます。 28000Impala が HiveServer2 接続を待機するポート番号です。 transportMode=httpトランスポート層として HTTP を使用します。 uauth=noSaslKerberos 未使用のクラスター向けに SASL 認証を無効化します。 (任意)Beeline を終了するには、
quit;を実行します。
ハイセキュリティクラスター
ハイセキュリティクラスターでは、Beeline をルートユーザーとしてコアノード(マスターノードではなく)で実行してください。
SSH でコアノードにルートユーザーとしてログインします。詳細については、「クラスターへのログイン」をご参照ください。
ルートユーザーとして Kerberos 認証情報を初期化します。
有効な認証情報が既に存在するかを確認します:
klist出力に
klist: No credentials cache foundと表示された場合は、認証情報の初期化を続行してください。有効な認証情報が表示された場合は、手順 3 に進んでください。keytab 内のプリンシパル名を確認します:
klist -k $IMPALA_CONF_DIR/impala.keytab出力の最初の行を保存してください。例:
impala/master-1-1.c-45dcb9bbe234****.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE23****.COM
認証情報を初期化します:
kinit -k -t $IMPALA_CONF_DIR/impala.keytab <principal><principal>は、直前の手順で保存したプリンシパル名に置き換えてください。
ルートユーザーとして Impala に接続します:
beeline -u 'jdbc:hive2://<impalad-node>:28000/default;principal=<principal>;transportMode=http'<impalad-node>は Impalad ノードのホスト名に、<principal>は手順 2b で取得した完全なプリンシパル名にそれぞれ置き換えてください。(任意)Beeline を終了するには、
!quitを実行します。
Beeline の終了コマンドは !quit であり、quit; ではありません。