MapReduce规约浅谈

MapReduce阶段的kv变化

MapReduce是通过inputformat类读取文件产生K1,V1,map阶段读取数据,产生K2,V2;而Reduce阶段通过拉取map阶段的数据进行处理产生新的K3,V3

在map阶段读取数据产生K2,V2之后,我们可以通过使用combiner规约来将map阶段的k2进行合并,V2生成集合,也就是从而减少生成文件的大小,减少reduce读取map阶段文件的网络传输。也就是本该在reduce阶段进行相同key合并,value形成新的集合的这个过程在map阶段通过使用规约提前完成了
在这里插入图片描述

注意

我们如果不使用规约(combiner),所有的结果都要在reduce阶段完成,效率就会相对低下。使用combiner的话,就会在map端做本地聚合,提升效率

combiner是在每一个maptask所在的节点运行,Reducer是接收全局所有Mapper的输出结果

规约的好处

通过规约,可以减少map最终的数据量,也就减少传输到reduce的数据量,减少网络带宽

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章