すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:YARN リソースの構成

最終更新日:May 10, 2026

EMR 3.49.0 および 5.15.0 以降では、クラスター作成時に選択したインスタンスタイプおよびデプロイされたサービスに基づき、EMR が YARN コンポーネントのデフォルトメモリ値を動的に設定します。クラスター作成後は、EMR コンソールでこれらの値を調整できます。

説明

クラスター初期化後に YARN コンポーネントが想定より少ないメモリを受け取る場合は、以下の 2 点を確認してください。

  • クラスターにデプロイされているサービスの数。EMR は使用可能なメモリをすべてのデプロイ済みサービスに分配するため、サービス数が多いほどコンポーネントごとのメモリ量が少なくなります。

  • ノードグループ内の Elastic Compute Service (ECS) インスタンスの仕様が、すべてのデプロイ済みサービスのメモリ要件を満たしているかどうか。

YARN コンポーネントのヒープメモリサイズ

EMR コンソールの YARN サービスページの Configure タブで、yarn-env.sh または mapred-env.sh の以下のパラメーターを設定します。すべてのパラメーターはクラスターレベルで有効となり、適用にはコンポーネントの再起動が必要です。

コンポーネント

パラメーター

構成ファイル

調整タイミング

制約事項

ResourceManager

YARN_RESOURCEMANAGER_HEAPSIZE

yarn-env.sh

小規模タスクの大量投入により ResourceManager が遅延する場合

最小値:1024。適用には ResourceManager を再起動する必要があります。

NodeManager

YARN_NODEMANAGER_HEAPSIZE

yarn-env.sh

Shuffle Service が NodeManager メモリを過剰に占有し、フル GC が発生する場合

適用には NodeManager を再起動する必要があります。

WebAppProxyServer

YARN_PROXYSERVER_HEAPSIZE

yarn-env.sh

デフォルト値が不十分な場合

適用には WebAppProxyServer を再起動する必要があります。

TimelineServer

YARN_TIMELINESERVER_HEAPSIZE

yarn-env.sh

デフォルト値が不十分な場合

適用には TimelineServer を再起動する必要があります。

TimelineServer

-XX:MaxDirectMemorySize in YARN_TIMELINESERVER_OPTS

yarn-env.sh

TimelineServer でダイレクトメモリの圧迫が発生する場合

最小値:512m。適用には TimelineServer を再起動する必要があります。

MRHistoryServer

HADOOP_JOB_HISTORYSERVER_HEAPSIZE

mapred-env.sh

デフォルト値が不十分な場合

適用には MRHistoryServer を再起動する必要があります。

YARN のクラスターリソース構成

EMR コンソールの YARN サービスページの Configure タブで、以下の yarn-site.xml パラメーターを設定します。

スケジューラ割り当て制限

これらのパラメーターは クラスターレベル で適用され、コンテナごとのリソース上限および下限を制御します。変更には ResourceManager の再起動が必要です。

パラメーター

説明

デフォルト

調整タイミング

yarn.scheduler.maximum-allocation-mb

スケジューラから単一コンテナがリクエストできる最大メモリ量

大規模な単一コンテナタスクを送信するワークロード向けに増加させます。ただし、過度に大きな値はリソースの断片化を引き起こす可能性があります。

yarn.scheduler.minimum-allocation-mb

スケジューラから単一コンテナがリクエストできる最小メモリ量

調整が必要となることは稀です。

yarn.scheduler.maximum-allocation-vcores

スケジューラから単一コンテナがリクエストできる最大 vCPU 数

32

大規模な単一コンテナタスクを送信するワークロード向けに増加させます。ただし、過度に大きな値はリソースの断片化を引き起こす可能性があります。

yarn.scheduler.minimum-allocation-vcores

スケジューラから単一コンテナがリクエストできる最小 vCPU 数

1

調整が必要となることは稀です。

NodeManager リソース制限

これらのパラメーターは ノードグループレベル で適用されます。設定する際は、EMR コンソールで ノードグループレベル設定 を選択してください。選択しないと変更は有効になりません。EMR はノードグループ間で異なるインスタンスタイプの混在をサポートしており、同一ノードグループ内のすべての ECS インスタンスは同じインスタンスタイプを共有します。NodeManager リソースをノードグループレベルで構成することで、小規模ノードの過負荷や大規模ノードのリソース未活用を防止できます。

パラメーター

説明

デフォルト

調整タイミング

yarn.nodemanager.resource.memory-mb

コンテナ向けに NodeManager が利用可能な物理メモリの合計量

クラスター作成時にインスタンスタイプに基づいて設定されます

ご利用のクラスターデプロイに基づいて構成してください。適用には NodeManager を再起動する必要があります。

yarn.nodemanager.resource.cpu-vcores

コンテナ向けに NodeManager が利用可能な vCPU の合計数

インスタンスタイプの vCPU 数。高メモリインスタンスタイプの場合、デフォルト値は通常メモリインスタンスタイプの vCPU 数の 2 倍となります。

ワークロードの特性に基づいて調整してください。適用には NodeManager を再起動する必要があります。

スケジューラと NodeManager のメモリ関係

yarn.scheduler.maximum-allocation-mb は、タスクが正しくスケジュールされるようにするために、yarn.nodemanager.resource.memory-mb より大きい値である必要があります。

これらの 2 つのパラメーターを管理する際は、以下の点にご注意ください。

  • EMR では、クラスター作成時または初めてノードグループを追加してスケーリングする際に、両方のパラメーターを構成できます。

  • ノードグループのインスタンス仕様をスペックアップするか、yarn.nodemanager.resource.memory-mb を手動で変更しても、yarn.scheduler.maximum-allocation-mb は自動的には更新されません。必要に応じて手動で更新してください。

  • 新しいノードグループに対して初めて yarn.scheduler.maximum-allocation-mb を構成する際、ResourceManager は自動的に再起動されません。変更を適用するには、手動で ResourceManager を再起動してください。

説明

ResourceManager の再起動により、実行中のタスクが失敗する可能性があります。オフピーク時間帯に再起動を実施してください。