E-MapReduce (EMR) は、コンソールで YARN パーティションを管理するための視覚的な UI を提供します。ノードグループをパーティションに一括でマッピングできます。パーティションのプロパティはノードグループで直接設定できます。スケールアウトまたは Auto Scaling イベントの後、EMR は新しいノードにノードラベルを自動的に適用するため、手動での再設定は不要です。本トピックでは、EMR コンソールで YARN パーティションを管理する方法について説明します。
背景情報
この機能は、以下のシナリオに適しています。
-
異種クラスター
クラスターは多くの場合、異種のマシンタイプで構成されます。例えば、クラスターには、コンピューティング最適化、メモリ最適化、およびストレージ最適化のマシンが混在している場合があります。
-
複数のコンピューティングフレームワークによるクラスターリソースの共有
Flink アプリケーションなどのリソースを大量に消費するバッチジョブは、過剰なネットワークリソースや CPU リソースを消費し、同じクラスター上のニアリアルタイムワークロードのリソースを枯渇させる可能性があります。
-
重要なジョブのためのリソース保証
重要なジョブが伸縮ノードで実行されるのを防ぐために、非伸縮ノードのみを使用して専用のパーティションを設定し、そのパーティションにジョブを割り当てることができます。これにより、重要なジョブがスケールインイベントによって遅延するのを防ぎます。
YARN パーティション管理により、オペレーターは、ロールや処理能力などの特性に基づいてノードをパーティションに分割できます。これにより、ジョブが特定のノードで実行されるようになり、マシンタイプが混在するクラスターや多様なアプリケーションに対するリソーススケジューリングが向上します。
前提条件
クラスターが実行中状態である必要があります。クラスターの作成方法の詳細については、「クラスターの作成」をご参照ください。
制限事項
-
この機能は、EMR V5.11.1 以降、および EMR V3.45.1 以降で利用できます。
-
クラスターが実行中状態である必要があります。
-
YARN スケジューラでは、キャパシティスケジューラを使用する必要があります。
注意事項
-
パーティションを追加または編集した後、[Apply] をクリックします。この操作はオフピークの時間帯に実行してください。
-
YARN スケジューラをフェアスケジューラに切り替える場合は、[Node Labels] スイッチをオフにする必要があります。
パーティションの追加
-
YARN サービスの設定ページに移動します。
-
E-MapReduce コンソールにログインします。
-
上部メニューで、リージョンとリソースグループを選択します。
-
EMR on ECS ページで、対象のクラスターを見つけ、操作列の Services をクリックします。
-
Services ページで、YARN セクションの Configure をクリックします。
-
-
Partitions タブをクリックします。
-
Add Partition をクリックします。Add Partition ダイアログボックスで、パラメーターを設定します。
パラメーター
説明
[Partition Name]
パーティション名。
名前は 1~255 文字で、使用できる文字は英字、数字、ハイフン (-)、アンダースコア (_) のみです。
説明-
DEFAULT という名前のパーティションを作成できます。
-
パーティション名をハイフン (-) またはアンダースコア (_) で始めることはできません。
[Partition Type]
-
排他的 (デフォルト):このパーティションを明示的に要求するコンテナのみが、そのノードにスケジュールされます。
-
非排他的:DEFAULT パーティションを要求するコンテナとアイドルリソースを共有します。
[Associated Node Groups]
パーティションに関連付けるノードグループを選択します。各ノードグループは 1 つのパーティションにのみ関連付けられますが、この関連付けは後で変更できます。
-
-
決定 をクリックします。
-
Deploy をクリックします。
システムが設定の更新を適用すると、新しいパーティションが YARN UI に表示されます。
デフォルトでは、変更は 10 分後に有効になります。変更をより早く有効にしたい場合は、Configure タブで yarn-site.xml ファイルに yarn.nodemanager.node-labels.resync-interval-ms および yarn.nodemanager.node-labels.provider.fetch-interval-ms の設定項目を追加することで、有効になるまでの時間を変更できます。その後、Status タブに移動し、[NodeManager] コンポーネントを手動で再起動します。
パーティションの編集
-
EMR コンソールの YARN サービスの Partitions タブで、変更するパーティションを見つけ、操作列の 編集 をクリックします。
-
Edit Partition ダイアログボックスでは、関連付けられたノードグループのみ変更できます。
-
決定 をクリックします。
-
Deploy をクリックして変更を適用します。
パーティションの削除
-
EMR コンソールの YARN サービスの Partitions タブで、削除するパーティションを探し、[操作] 列の 削除 をクリックします。
-
表示される確認ダイアログボックスで、決定 をクリックします。
-
変更を適用するには、Deploy をクリックします。
説明-
パーティションを削除すると、それに関連付けられていたノードグループの関連付けが解除されます。
-
パーティションがキューにバインドされている場合、パーティションを削除する前に、Edit Resource Queue タブに移動し、[パーティションとキューの関連付け管理] スイッチをオフにする必要があります。
-
パーティションリストの表示
YARN サービスの Partitions タブでは、パーティション名、アクセス可能なキュー、ノードグループ、パーティションタイプ、合計リソースなどの情報を確認できます。
パーティション管理の無効化
キャパシティスケジューラからフェアスケジューラに切り替えるには、YARN サービスの Partitions タブで [ノードラベル] スイッチをオフにします。次に、Edit Resource Queue タブの上にある
通知アイコンをクリックします。保留中の設定 パネルで、すべての設定項目を選択して 一括再起動 をクリックすると、変更が適用されてパーティション管理が無効になります。
[Partitions] タブの削除
カスタムスクリプトでパーティションを管理し、EMR コンソールによる検証を回避するには、YARN サービスの Configure タブに移動し、[yarn-operator-conf] の [node_labels_managed_by_emr] パラメーターを false に変更します。 ページを更新すると、「パーティション」タブは非表示になり、システムは [node-labels.xml] ファイルを検証しなくなります。 ノードラベルの設定方法の詳細については、「ノードラベル機能を使用する」をご参照ください。