Hive Live Long and Process (LLAP) の使用 - Amazon EMR

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 および YARN サービス API を参照してください。

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」を参照してください。