それぞれが異なるバージョンの Hadoop を実行している 2 つのクラスターがあります。Classic Map Reduce Framework では実現できなかった複数のアプリケーションを同時に実行する機能を YARN がどのように提供するかを理解する必要があるため、私は POC に取り組んでいます。
Hadoop Classic: wordcount.jar ファイルがあり、1 つのクラスター (2 つのマッパーと 2 つのリデューサー) で実行されます。私は並行して 2 つのジョブを開始しました。幸運に開始された方が最初に両方のマッパーを取得し、タスクを完了してから 2 番目のジョブが開始されました。これは予期される動作です。
Hadoop Yarn: 同じ wordcount.jar と別のクラスター (4 コア、合計 4 台のマシン)。Yarn はマッパーとレデューサーを事前に割り当てないため、任意のコアをマッパーまたはレデューサーとして使用できます。ここでも、2 つのジョブを並行して送信しました。予想される動作: 両方のジョブは、それぞれ 2 つのマッパーで開始するか、リソース マネージャーが割り当てた構成で開始する必要がありますが、少なくとも両方のジョブを開始する必要があります。
現実: 1 つのジョブは 3 つの mapper と 1 つの reducer から始まります。2 番目のジョブは、最初のジョブが完了するまで待機します。
誰かが動作を理解するのを手伝ってくれますか? また、並列処理の動作はマルチノード クラスタに最もよく反映されていますか?