2017-06-03 6 views
1

例えば、 私が持っている2つのマッパーマッパーAとマッパーB.reduce関数がreducerタスクで呼び出される前にシャッフルが起こっていますか?ワードカウントジョブで

マッパAの出力は次のとおりです。{hi,1},{hello,1},{hey,1}

マッパBの出力は次のとおりです。{hi,1},{bye,1},{hey,1}

と仮定、コンバイナと1つの減速次いで

いいえシャッフリングがMAPPの両方の出力をシャッフルで、そう

を発生し、第一、存在しませんERSマージ結果は次のとおりです。

{hi,[1,1]},{hello,1},{hey,[1,1]},{bye,1} 

その後、並べ替えが起こる:

bye,2 
hello,1 
hey,2 
hi,2 

{bye,1},{hello,1},{hey,[1,1]},{hi,[1,1]} 

、その後減速タスクに機能を削減は以下のように、O/Pを行っていると呼ばれています上記のプロセスは正しいですか?そして、関数を減らす前にシャッフルが起こっていますか?スケジューラは異なるマッパーからデータを集めるだけですが、同じキーでデータをグループ化することはありません。このプロセスはソート後に行われますか?ここでソートが便利なのはなぜですか?

答えて

0

をはい、シャッフル(およびソート)が実行されています。

注:ゼロレデューサー(setNumReduceTasks(0))を指定した場合 しかし、その後、シャッフルや並べ替えが全く行われていません。

関連する問題