1、概念和原理
同一个分区的数据会发送给同一个reduce;
可以简单解释为————标记一样,放到一个reduce里面:
2、代码编写步骤(以中奖编号是否>15进行分区)
1、定义Mapper
可以自定义名称为PartitionMapper,并继承Mapper类:
并重写map方法:
2、自定义partitioner
可以自定义名称为MyPartitioner,并继承于Partitioner类:
并重写getPartition方法:
3、定义reducer逻辑(无需做任何处理)
自定义名称为PartitionerReducer的类,并继承于Reducer:
4、定义主类JobMain
main方法:
run方法:
第三步--指定分区类
四、五、六步采用默认方式(后面会学到的)
既然有分区的话,就需要在第七步设置reduceTask的个数: