コンバイナーで WordCount の例を実行します。実行結果は次のとおりです。
13/10/07 22:32:38 INFO mapred.JobClient: Map input records=20111076
13/10/07 22:32:38 INFO mapred.JobClient: Reduce shuffle bytes=467280
13/10/07 22:32:38 INFO mapred.JobClient: Spilled Records=541137
13/10/07 22:32:38 INFO mapred.JobClient: Map output bytes=632287974
13/10/07 22:32:38 INFO mapred.JobClient: Total committed heap usage (bytes)=4605870080
13/10/07 22:32:38 INFO mapred.JobClient: Combine input records=62004735
13/10/07 22:32:38 INFO mapred.JobClient: SPLIT_RAW_BYTES=2280
13/10/07 22:32:38 INFO mapred.JobClient: Reduce input records=32020
13/10/07 22:32:38 INFO mapred.JobClient: Reduce input groups=1601
13/10/07 22:32:38 INFO mapred.JobClient: Combine output records=414658
13/10/07 22:32:38 INFO mapred.JobClient: Reduce output records=1601
13/10/07 22:32:38 INFO mapred.JobClient: Map output records=61622097
2 つ質問map_output_records
がありcombine_input_records
ます。そして、なぜ はreduce_input_records
よりもはるかに少ないのcombine_output_records
ですか? コンバイナが数回呼び出される可能性があることはわかっていcombine_output_records
ますが、最後の呼び出しの結果ではないはずですか? レデューサーが消費するレコードの数と等しくないのはなぜですか?
助けてくれてありがとう!