2012-04-17 1 views
1

おはよう... 私は少し混乱しています。削減業務と削減業務の違いは何ですか? ここは私の場合です。私は、すべてのマッピングが... を終了するまで開始されない減らすこと読みましたが、Hadoopの出力に私がそうでない場合は以下を参照してください。すべてのマッパーが終了したときにのみジョブを減らしますか?

12/02/11 10:58:50 INFO mapred.JobClient: map 60% reduce 16% 
12/02/11 10:58:54 INFO mapred.JobClient: map 60% reduce 20% 
12/02/11 10:58:55 INFO mapred.JobClient: map 65% reduce 20% 

を減らすマップながら16%はまだ60%... である何ここで本当に起こっていますか?

答えて

14

シャッフル、ソート、リダクションの3つのフェーズがあります。シャッフルはデータをコピーし、ソートはキーをグループ化します。 reduceは実際に書いたreduce関数です。

シャッフルは33%、ソートは33%、リダクションは33%です。あなたが見ているのは、データの約16%/ 33%(48%)がレデューサーにコピーされているということです。すべてのマッパーが完了するまで、「減少」の最後の33%は開始できません。

4

第1マッパーが入力の処理を終了するとすぐに、出力マッパーの出力をコピーし始めますが、すべてのマッパーがタスクの実行を完了するまで、減速機は入力を処理できません。これの背後にある理由は、レデューサーが未完成のマッパーからより多くの入力データを受け取り、入力を処理する順序を変更する可能性があるためです。

コンソールで表示されるレデューサーの完了率は、レデューサーがマッパーからデータをコピー中であることを示します。

関連する問題