MapReduce教程(二)MapReduce框架Partitioner分区
1 Partitioner分区
1.1 Partitioner分区描述
在进行MapReduce计算时,有时候需要把最终的输出数据分到不同的文件中,按照手机号码段划分的话,需要把同一手机号码段的数据放到一个文件中;按照省份划分的话,需要把同一省份的数据放到一个文件中;按照性别划分的话,需要把同一性别的数据放到一个文件中。我们知道最终的输出数据是来自于Reducer任务。那么,如果要得到多个文件,意味着有同样数量的Reducer任务在运行。Reducer任务的数据来自于Mapper任务,也就说Mapper任务要划分数据,对于不同的数据分配给不同的Reducer任务运行。Mapper任务划分数据的过程就称作Partition。负责实现划分数据的类称作Partitioner。
1.2 MapReduce运行原理
MapReduce流程图 - 1.1
1.3 数据需求
将文件input_data.txt中的用户数据,根据用户的手机号,按照手机号进行分区。
附件地址链接:http://download.csdn.net/detail/yuan_xw/9459721
1.4 实现步骤
1、 编写UserMapper类,分析用户数据信息。
2、 编写UserReducer类,计算用户的年收数据信息。
3、 编写ProviderPartitioner类,Partitioner组件可以让Map对