MapReduce分区的学习
1、概念和原理
同一个分区的数据会发送给同一个reduce;
可以简单解释为————标记一样,放到一个reduce里面:

2、代码编写步骤(以中奖编号是否>15进行分区)
1、定义Mapper
可以自定义名称为PartitionMapper,并继承Mapper类:

并重写map方法:

2、自定义partitioner
可以自定义名称为MyPartitioner,并继承于Partitioner类:

并重写getPartition方法:


3、定义reducer逻辑(无需做任何处理)
自定义名称为PartitionerReducer的类,并继承于Reducer:

4、定义主类JobMain
main方法:

run方法:


第三步--指定分区类

四、五、六步采用默认方式(后面会学到的)

既然有分区的话,就需要在第七步设置reduceTask的个数:



浙公网安备 33010602011771号