

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Hive Live Long and Process (LLAP) の使用
<a name="emr-hive-llap"></a>

Amazon EMR 6.0.0 は、Hive の Live Long and Process (LLAP) 機能をサポートします。LLAP では、永続的なデーモンによるインテリジェントなメモリ内キャッシングを使用し、以前のデフォルトの Tez コンテナ実行モードと比較してクエリのパフォーマンスを向上させます。

Hive LLAP デーモンは、YARN サービスとして管理および実行されます。YARN サービスは長時間実行している YARN アプリケーションと見なすことができるため、一部のクラスターリソースは Hive LLAP 専用となり、他のワークロードには使用できません。詳細については、[LLAP](https://cwiki.apache.org/confluence/display/Hive/LLAP) および [YARN サービス API](https://hadoop.apache.org/docs/r3.2.1/hadoop-yarn/hadoop-yarn-site/yarn-service/YarnServiceAPI.html) を参照してください。

## Amazon EMR で Hive LLAP を有効にする
<a name="emr-llap-enable"></a>

Amazon EMR で Hive LLAP を有効にするには、クラスターを起動するときに次の設定を指定します。

```
[
  {
    "Classification": "hive",
    "Properties": {
      "hive.llap.enabled": "true"
    }
  }
]
```

詳細については、「[アプリケーションの設定](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)」を参照してください。

デフォルトでは、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 を手動で起動する
<a name="emr-llap-manually"></a>

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 のステータスを確認する
<a name="emr-llap-check"></a>

Hive を使用して Hive LLAP のステータスを確認するには、次のコマンドを使用します。

```
hive --service llapstatus
```

YARN を使用して Hive LLAP のステータスを確認するには、次のコマンドを使用します。

```
yarn app -status (name-of-llap-service)

# example: 
yarn app -status llap0 | jq
```

## Hive LLAP を起動または停止する
<a name="emr-llap-start"></a>

Hive LLAP は永続的な YARN サービスとして実行されるため、Hive LLAP を停止または再起動するには、YARN サービスを停止または再起動します。次のコマンドはこれを示しています。

```
yarn app -stop llap0
yarn app -start llap0
```

## Hive LLAP デーモンの数を変更する
<a name="emr-llap-resize"></a>

LLAP インスタンスの数を減らすには、次のコマンドを使用します。

```
yarn app -flex llap0 -component llap -1
```

詳細については、「[Flex a component of a service](https://hadoop.apache.org/docs/r3.2.1/hadoop-yarn/hadoop-yarn-site/yarn-service/QuickStart.html#Flex_a_component_of_a_service)」を参照してください。