E-MapReduce (EMR) では、コンソールで Yet Another Resource Negotiator (YARN) パーティションを視覚的に管理できます。一度に複数のノードグループとパーティション間のマッピングを確立できます。ノードグループのパーティションプロパティを設定できます。ノードグループで手動スケールアウトまたは自動スケーリングを実行した後、EMR は新しいノードのラベルを追加します。このようにして、新しいノードを設定する必要はありません。このトピックでは、EMR コンソールで YARN パーティションを管理する方法について説明します。
背景情報
次のシナリオで YARN パーティション管理機能を使用できます。
環境内に異なるタイプのインスタンスが存在する。
実際の環境では、異なるタイプのインスタンスをデプロイする必要がある場合があります。たとえば、一部のインスタンスはコンピュート最適化インスタンスであり、一部のインスタンスはメモリ最適化インスタンスです。新しく購入したインスタンスは、大容量メモリと多数の vCPU を備えたコンピュート最適化インスタンスです。既存のインスタンスはストレージ最適化インスタンスです。
クラスタリソースは複数のコンピューティングフレームワークで共有される。
オフラインクラスタの Flink アプリケーションなど、バッチ処理ジョブを実行するために使用されるアプリケーションは、大量のネットワークリソースまたは CPU リソースを使用します。この場合、準リアルタイムコンピューティングに使用できる十分なリソースがない可能性があります。
重要なジョブのパフォーマンスを確保する必要がある。
重要なジョブがエラスティックノードにスケジュールされないようにするには、非エラスティックノード用に個別のパーティションを設定し、重要なジョブがそのパーティションを使用できるようにします。これにより、スケールインアクティビティによるこれらの重要なジョブの待ち時間が発生しなくなります。
YARN パーティション管理機能を使用すると、ノードのロールと処理能力に基づいて、ノードを特定のパーティションに関連付けることができます。その後、指定したパーティション内のノードでジョブを実行できます。これにより、多次元のビジネス要件を満たし、さまざまなタイプのリソースとアプリケーションをより適切に管理およびスケジュールできます。
前提条件
クラスタが作成され、実行中状態になっています。詳細については、「クラスタを作成する」をご参照ください。
制限事項
クラスタは EMR V5.11.1 以降のマイナーバージョン、または EMR V3.45.1 以降のマイナーバージョンを実行している必要があります。
クラスタは実行中状態である必要があります。
YARN スケジューラとして容量スケジューラを使用する必要があります。
使用上の注意
パーティションを追加または編集した後、[デプロイ] をクリックして設定を有効にする必要があります。業務のオフピーク時に操作を実行することをお勧めします。
YARN スケジューラとして公平スケジューラを使用する場合は、ノードラベルをオフにする必要があります。
パーティションを追加する
YARN サービスページの [構成] タブに移動します。
EMR コンソール にログオンします。左側のナビゲーションウィンドウで、[ECS 上の EMR] をクリックします。
- 上部のナビゲーションバーで、クラスタが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します。
[ECS 上の EMR] ページで、管理するクラスタを見つけ、[アクション] 列の Services をクリックします。
Services タブで、YARN セクションの Configure をクリックします。
Partitions タブをクリックします。
Add Partition をクリックします。Add Partition ダイアログボックスで、次のパラメータを構成します。
パラメータ
説明
Partition Name
追加するパーティションの名前。
名前は 1 ~ 255 文字で、文字、数字、ハイフン (-)、およびアンダースコア (_) を使用できます。
説明DEFAULT という名前のパーティションを作成できます。
名前はハイフン (-) またはアンダースコア (_) で始めることはできません。
Partition Type
排他的: コンテナは、排他的パーティションが指定されている場合にのみ、排他的パーティションのノードに割り当てることができます。これはデフォルト値です。
非排他的: コンテナは、非排他的パーティションが指定されている場合に、非排他的パーティションのノードに割り当てることができます。コンテナが割り当てられるパーティションが指定されていない場合、または DEFAULT パーティションがコンテナが割り当てられるパーティションとして指定されている場合、コンテナはアイドルリソースを持つ非排他的パーティションのノードに割り当てることができます。
Associated Node Groups
パーティションを関連付けるノードグループ。各ノードグループは 1 つのパーティションにのみ関連付けることができます。関連付けられたノードグループを変更できます。
OK をクリックします。
Deploy をクリックします。
設定が有効になったら、[パーティション] タブで追加されたパーティションを表示できます。
デフォルトでは、設定は 10 分で有効になります。設定をより短い期間で有効にするには、次の操作を実行します。 Configure タブの yarn-site.xml タブに yarn.nodemanager.node-labels.resync-interval-ms および yarn.nodemanager.node-labels.provider.fetch-interval-ms 設定項目を追加します。設定が有効になるまでにかかる時間を変更します。次に、[ステータス] タブで [nodemanager] コンポーネントを手動で再起動します。
パーティションを編集する
YARN サービスページの Partitions タブで、編集するパーティションを見つけ、[アクション] 列の Edit をクリックします。
Edit Partition ダイアログボックスで、関連付けられたノードグループを変更します。その他のパラメータは変更できません。
OK をクリックします。
Deploy をクリックします。
パーティションを削除する
YARN サービスページの Partitions タブで、削除するパーティションを見つけ、[アクション] 列の Delete をクリックします。
確認メッセージで、OK をクリックします。
Deploy をクリックします。
説明パーティションを削除すると、パーティションに関連付けられているノードグループの関連付けが解除されます。
パーティションがキューに関連付けられている場合は、[リソースキューの編集] タブで [パーティションキューの関連付け管理を無効にする] をオフにしてから、パーティションを削除する必要があります。
パーティション情報を表示する
YARN サービスページの Partitions タブで、パーティション名、パーティションにアクセスできるキュー、関連付けられたノードグループ、パーティションタイプ、リソースの合計量など、各パーティションに関する情報を表示できます。
パーティション管理機能を無効にする
YARN スケジューラを容量スケジューラから公平スケジューラに切り替える場合は、[ノードラベル] をオフにして、パーティション管理機能を無効にします。次に、次の操作を実行して設定を有効にします。
[リソースキューの編集] タブの上部にある [有効になる構成][バッチ再起動] をクリックします。 ダイアログボックスで、すべての設定項目を選択し、 をクリックします。
EMR コンソールから [パーティション] タブを削除する
カスタムスクリプトを使用してパーティションを管理し、EMR コンソールのパーティション管理機能を無効にする場合は、YARN サービスページの Configure タブで、[yarn-operator-conf] タブの [node_labels_managed_by_emr] パラメータを false に設定できます。EMR コンソールを更新すると、[パーティション] タブは非表示になり、[node-labels.xml] ファイルに基づいてパーティション管理が検証されなくなります。ノードラベル機能の使用方法の詳細については、「ノードラベル」をご参照ください。