Hive Live Long and Process (LLAP) の使用
Amazon EMR 6.0.0 は、Hive の Live Long and Process (LLAP) 機能をサポートします。LLAP では、永続的なデーモンによるインテリジェントなメモリ内キャッシングを使用し、以前のデフォルトの Tez コンテナ実行モードと比較してクエリのパフォーマンスを向上させます。
Hive LLAP デーモンは、YARN サービスとして管理および実行されます。YARN サービスは長時間実行している YARN アプリケーションと見なすことができるため、一部のクラスターリソースは Hive LLAP 専用となり、他のワークロードには使用できません。詳細については、LLAP
Amazon EMR で Hive LLAP を有効にする
Amazon EMR で Hive LLAP を有効にするには、クラスターを起動するときに次の設定を指定します。
[ { "Classification": "hive", "Properties": { "hive.llap.enabled": "true" } } ]
詳細については、「アプリケーションの設定」を参照してください。
デフォルトでは、Amazon EMR はクラスター YARN リソースの約 60% を Hive LLAP デーモンに割り当てます。Hive LLAP に割り当てるクラスター YARN リソースの割合 (%) と、Hive LLAP 割り当ての対象と見なすタスクノードやコアノードの数は設定できます。
たとえば、次の設定では、3 つのタスクノードまたはコアノードで 3 つのデーモンを使用して Hive LLAP を起動し、3 つのコアノードまたはタスクノードの YARN リソースの 40% を Hive LLAP デーモンに割り当てます。
[ { "Classification": "hive", "Properties": { "hive.llap.enabled": "true", "hive.llap.percent-allocation": "0.4", "hive.llap.num-instances": "3" } } ]
次の hive-site
設定を分類 API で使用し、デフォルトの LLAP リソース設定を上書きできます。
プロパティ | 説明 |
---|---|
hive.llap.daemon.yarn.container.mb | LLAP デーモンコンテナの合計サイズ (MB 単位) |
hive.llap.daemon.memory.per.instance.mb |
LLAP デーモンコンテナ内の実行プログラムで使用する合計メモリ (MB 単位) |
hive.llap.io.memory.size |
LLAP 入力/出力のキャッシュサイズ |
hive.llap.daemon.num.executors |
LLAP デーモンあたりの実行プログラム数 |
クラスターで Hive LLAP を手動で起動する
LLAP で使用するすべての依存関係と設定は、クラスターの起動の一環として、LLAP tar アーカイブにパッケージ化されます。"hive.llap.enabled": "true"
を使用して LLAP を有効にする場合は、Amazon EMR 再設定を使用して LLAP の設定を変更することをお勧めします。
それ以外の場合、hive-site.xml
を手動で変更するには、hive --service llap
コマンドを使用して LLAP tar アーカイブを再構築する必要があります。次に例を示します。
# Define how many resources you want to allocate to Hive LLAP LLAP_INSTANCES=<how many llap daemons to run on cluster> LLAP_SIZE=<total container size per llap daemon> LLAP_EXECUTORS=<number of executors per daemon> LLAP_XMX=<Memory used by executors> LLAP_CACHE=<Max cache size for IO allocator> yarn app -enableFastLaunch hive --service llap \ --instances $LLAP_INSTANCES \ --size ${LLAP_SIZE}m \ --executors $LLAP_EXECUTORS \ --xmx ${LLAP_XMX}m \ --cache ${LLAP_CACHE}m \ --name llap0 \ --auxhbase=false \ --startImmediately
Hive LLAP のステータスを確認する
Hive を使用して Hive LLAP のステータスを確認するには、次のコマンドを使用します。
hive --service llapstatus
YARN を使用して Hive LLAP のステータスを確認するには、次のコマンドを使用します。
yarn app -status (name-of-llap-service) # example: yarn app -status llap0 | jq
Hive LLAP を起動または停止する
Hive LLAP は永続的な YARN サービスとして実行されるため、Hive LLAP を停止または再起動するには、YARN サービスを停止または再起動します。次のコマンドはこれを示しています。
yarn app -stop llap0 yarn app -start llap0
Hive LLAP デーモンの数を変更する
LLAP インスタンスの数を減らすには、次のコマンドを使用します。
yarn app -flex llap0 -component llap -1
詳細については、「Flex a component of a service