YARNのコンテナとは? nodemanager 上のタスクが実行される子 JVM と同じですか、それとも異なりますか?
9 に答える
これは、特定のクラスターの単一ノード上のリソース (メモリー) を表します。
コンテナは
- ノードマネージャによって監視されます
- リソース マネージャによってスケジュールされた
1 つの MR タスクがそのようなコンテナーで実行されます。
1つのノード(または1つの非常に大きなコンテナー)に複数のコンテナーが存在する場合があります。
システム内のすべてのノードは、最小サイズのメモリ(たとえば、512MBまたは1GB)の複数のコンテナで構成されていると見なされます。ApplicationMasterは、最小メモリサイズの倍数として任意のコンテナを要求できます。
ソース。「ResourceManager/リソースモデル」セクションを参照してください。
Hadoop 2.x では、コンテナは作業単位が発生する場所です。たとえば、各 MapReduce タスク (ジョブ全体ではない) は 1 つのコンテナーで実行されます。
アプリケーション/ジョブは、1 つ以上のコンテナーで実行されます。
コンテナごとに一連のシステム リソースが割り当てられます。現在、CPU コアと RAM がサポートされています。Hadoop クラスター内の各ノードは、複数のコンテナーを実行できます。
Hadoop 1.xa では、各 MapReduce タスクを実行するために JobTracker によってスロットが割り当てられます。次に、TaskTracker は、タスクごとに個別の JVM を生成します (JVM の再利用が有効になっていない場合を除く)。
簡単に言えば、コンテナは YARN アプリケーションが実行される場所です。各ノードで利用できます。Application Master は、スケジューラ (Resource Manager のコンポーネントの 1 つ) とコンテナーをネゴシエートします。コンテナはノード マネージャによって起動されます。