用户定制Partitioner

用户定制Partitioner

Partition:完成Map节点数据的中间结果向Reduce节点的分区处理

在MapReduce程序中,Partitioner决定Map节点的输出将被分区到那个Reduce节点上去,MapReduce提供的默认的Partitioner是HashPartitioner
他根据每条数据记录的主键值进行Hash操作,获取一个非负整数的Hash码,然后用当前作业的Reduce数进行取模运算,此时决定记录将被分到哪个Reduce节点上去

定制Partitioner可以继承HashPartitioner,然后重载getPartition()方法,在该方法中用新的主键值进一步调用HashPartitioner的getPartition()
最后还需要在job的配置程序中配置进行如下的Partitioner设置。

你可能感兴趣的:(hadoop,Partitioner)