0

それぞれが異なるバージョンの 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 番目のジョブは、最初のジョブが完了するまで待機します。

誰かが動作を理解するのを手伝ってくれますか? また、並列処理の動作はマルチノード クラスタに最もよく反映されていますか?

4

1 に答える 1

0

これが正確な理由かどうかはわかりませんが、従来の Hadoop および YARN アーキテクチャは別のスケジューラを使用しています。クラシック Hadoop はJobQueueTaskSchedulerを使用しますが、YARN はデフォルトでCapacitySchedulerを使用します。

于 2013-12-13T11:44:25.023 に答える