VPC環境で利用できます。
Impalaは大規模の並列処理エンジンとして、保存したデータをインタラクティブ SQLを用いてリアルタイムで分析できるシステムです。Hadoop HDFSだけでなく HBase、Kuduなどの様々な保存場所からデータを読み取ることができ、Hive、Hueなどと連携して使用できます。別途専用メタストアを使用せず、既存の Hiveメタストアを使用します。
Impalaは Hiveが持っているリアルタイム性 Queryパフォーマンス問題とマルチユーザーのサポートを解決するために登場しました。Hive、Pigは Map-Reduceフレームワークを通してクエリを処理するのに対し、Impalaは独自の分散クエリエンジンを使用するためにレスポンス時間が一番早い方です。
Impalaは単一のステートメントに対する Transactionをサポートしますが、複数のステートメントに対する Transactionはサポートしません。
Impalaの構成要素
Impalaサービスを構成するコンポーネントには Impala Daemon、StateStore、Catalog Serviceの3種類があります。
| コンポーネント | 説明 |
|---|---|
| Impala Daemon(Impalad) |
|
| Impala StateStore(StateStored) |
|
| Impala Catalog(Catalogd) |
|
クエリ実行プロセス
クエリの実行プロセスは、次の通りです。
- ユーザーはクラスタ内の特定 impaladで impala shell、ODBCなどを利用してクエリを実行
- Impaladは Hive metastoreでテーブルスキーマをインポートしてクエリの適合性を判断し、HDFSネームノードでクエリ実行に必要なデータブロックと各位置情報を収集
- 最近アップデートされた impalaメタデータをベースにクラスタ内のすべての impaladにクエリ実行に必要な情報を伝播
- クエリとメタデータが転送されたすべての impaladは各自処理するデータブロックをローカルディレクトリから読み取り、クエリ処理を実行
- すべての impaladでタスクが完了するとユーザーからクエリを受けた impaladは結果を収集してユーザーに転送

Impala を使用する
Impalaを使用する方法を説明します。
クラスタ作成
NAVERクラウドプラットフォームコンソールで Cloud Hadoopクラスタを作成します。クラスタ作成に関する詳細は、クラスタ作成をご参照ください。
Ambari UIで Impalaサービスをインストール
Ambari UIの Add serviceから Impalaをインストールできます。
インストール時に設定するオプションは次の通りです。
Advanced impala-env
| 設定項目 | 値 |
|---|---|
statestore_host |
Impala_statestore_설치_FQDN |
catalog_host |
Impala_catalog_설치_FQDN |
java_shared_lib_dir |
/usr/jdk64/jdk1.8.0_192/jre/lib/amd64/server |
Ambari UIで Impalaサービス確認
以下のように Impalaサービスを確認できます。このページで、サービスの各コンポーネントを開始または停止できます。

- Summary: コンポーネントがインストールされたホストを確認
- Configs: Impalaサービスの configurationを変更
- Quick Links: Impala Statestore WEB-UI, Impala Catalog WEB-UI, Impala Server WEB-UI
- このリンクを介してアクセスするには、トンネリングが必要です。コンソールで提供する Web UIリンクを用いたアクセスをお勧めします。詳細は、Impala WEB UIにアクセスをご参照ください。
- Impalaがインストールされたクラスタに Atlasサービスをインストールする場合、Port重複により Atlasサービスが正常に実行されないことがあります。
- Ambari UI > Atlas > CONFIGS > ADVANCED > Advanced application-properties > atlas.server.http.portの値を Impalaが利用中の Port番号(21000)と重複しないように変更した後、サービスを再実行してください。
Impala shell
Impala Shellはクエリを実行できる対話型シェル(shell)を提供します。Impala shellの使用に関する詳細な説明は、Impala shell Documentationをご参照ください。
- Impala shellでの Impaladアクセス
/usr/lib/impala_3_1_0_0_78/impala-shell/impala-shell -i <hiveserver2がインストールされた FQDN> 例) impala-shell -i m-001-クラスタ名-***-hd.kr.ch.naverncp.com;
Impala shellでの Impaladアクセス時、<impalad-HOST-NAME>は Impaladを実行中のデータノードのホスト名です。Ambari UI > Impala > Quick Links > Impala Server WEB-UIのホスト名です。
-
テーブル作成のための Hiveプロパティ変更
Ambari UI > Hive > CONFIGS > ADVANCED > Advanced hive-site > hive.strict.managed.tablesの値を falseに変更して保存し、Hiveを再起動します。 -
データベースとテーブル作成
CREATE database test; USE test; CREATE TABLE testTable ( ID INT ); -
データの保存後に照会
INSERT INTO testTable(ID) VALUES (1); SELECT * FROM testTable;
より多くのクエリのユースケースは、Apache Impala Guideの p.35~p.39をご参照ください。
Impala WEB UIにアクセス
Hue WEB UIで Impalaエディタを確認できます。

Impalaエディタが表示されない場合、以下の手順を実行してください。
- Ambari Web UI > Hue > Configs > Hue Service Module > Hue Impala Moduleをクリックします。
ONステータスに変更した後、サービスを再実行します。
