Combiner 在 Mapper 之后、Reducer 之前运行,它将接收给定节点上的 Mapper 实例发出的所有数据作为输入。然后它将输出发送到Reducers。因此组合器输入的记录应小于映射输出的记录。
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
我认为这是因为组合器还可以在先前组合步骤的输出上运行,因为您的组合器运行并生成新记录,然后将这些记录与来自映射器的其他记录组合。也可能是Map输出记录是在Combiner运行后计算出来的,意味着记录较少,因为有些已经被Combined了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)