4

Combiner は Mapper の後、Reducer の前に実行され、指定されたノードの Mapper インスタンスによって発行されたすべてのデータを入力として受け取ります。次に、Reducer に出力を送信します。したがって、コンバイナ入力のレコードは、マップ出力よりも少なくする必要があります。

12/08/29 13:38:49 INFO mapred.JobClient:   Map-Reduce Framework

12/08/29 13:38:49 INFO mapred.JobClient:     Reduce input groups=8649

12/08/29 13:38:49 INFO mapred.JobClient:     Map output materialized bytes=306210

12/08/29 13:38:49 INFO mapred.JobClient:     Combine output records=859412

12/08/29 13:38:49 INFO mapred.JobClient:     Map input records=457272

12/08/29 13:38:49 INFO mapred.JobClient:     Reduce shuffle bytes=0

12/08/29 13:38:49 INFO mapred.JobClient:     Reduce output records=8649

12/08/29 13:38:49 INFO mapred.JobClient:     Spilled Records=1632334

12/08/29 13:38:49 INFO mapred.JobClient:     Map output bytes=331837344

12/08/29 13:38:49 INFO mapred.JobClient:     **Combine input records=26154506**

12/08/29 13:38:49 INFO mapred.JobClient:     **Map output records=25312392**

12/08/29 13:38:49 INFO mapred.JobClient:     SPLIT_RAW_BYTES=218

12/08/29 13:38:49 INFO mapred.JobClient:     Reduce input records=17298
4

1 に答える 1

4

これは、コンバイナーが実行されて新しいレコードが生成され、マッパーから出てくる他のレコードと結合されるため、コンバイナーは以前の結合ステップの出力でも実行できるためだと思います。コンバイナの実行後に Map 出力レコードが計算される場合もあります。これは、一部のレコードが結合されているため、レコードが少ないことを意味します。

于 2012-08-29T17:55:41.537 に答える