MapReduce中数据流动
(1)最简单的过程: map - reduce
(2)定制了partitioner以将map的结果送往指定reducer的过程: map - partition - reduce
(3)增加了在本地先进性一次reduce(优化)过程: map - combin(本地reduce) - partition -reduce
1、概述:
Partitioner 组件可以让 Map 对 Key 进行分区,从而将不同分区的 Key 交由不同的 Reduce 处理。简洁明了
2、Partitioner的作用
分区Partitioner主要作用在于以下两点
(1)根据业务需要,产生多个输出文件;
(2)多个reduce任务并发运行,提高整体job的运行效率
3、代码实现步骤
1、自定义 TelephonePartitioner 类,继承抽象类 Partitioner
2、创建 HashMap 并添加相应值,key为手机号前三位数字,value为对应分区号
3、重写getPartition 方法,对 Map 输出的 key 实现自定义分区
4、通过 job.setPartitionerClass