【郑州校区】大数据离线阶段Day4之Mapreduce的combiner 每一个map都可能会产生大量的本地输出,Combiner的作用就是对map端的输出先做一次合并,以减少在map和reduce节点之间的数据传输量,以提高网络IO性能,是MapReduce的一种优化手段之一。 l combiner是MR程序中Mapper和Reducer之外的一种组件 l combiner组件的父类就是Reducer l combiner和reducer的区别在于运行的位置: Combiner是在每一个maptask所在的节点运行 Reducer是接收全局所有Mapper的输出结果; l combiner的意义就是对每一个maptask的输出进行局部汇总,以减小网络传输量 l 具体实现步骤: 1、 自定义一个combiner继承Reducer,重写reduce方法 2、 在job中设置: job.setCombinerClass(CustomCombiner.class) l combiner能够应用的前提是不能影响最终的业务逻辑,而且,combiner的输出kv应该跟reducer的输入kv类型要对应起来 传智播客·黑马程序员郑州校区地址 河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
|