MapReduce编程模型3——Partitioner简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CPP_MAYIBO/article/details/86769791

概述

Partitioner 控制着map中间数据的key的分区。键(或键的子集)用于产生分区,通常通过哈希函数。分区的总数是和reduce的任务相同,因此,这控制着中间的键(以及记录)发送到哪个 m reduce任务中进行reduce处理。

注意:如果你需要 Partitioner 类来获取job 的configuration 对象,则需要实现 Configurable 接口。

抽象类 Partitioner

下面我们看一下 Partitioner 的定义

public abstract class Partitioner<KEY, VALUE> {
  public abstract int getPartition(KEY key, VALUE value, int numPartitions);
   HashPartitioner
}

抽象类Partitioner只定义了一个方法,getPartition 用以获取指定key的分区数量。

Partitioner 有很多的实现类,其中最常见的就是 HashPartitioner

参考:

http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapreduce/Partitioner.html

https://blog.csdn.net/lemon_tree12138/article/details/51730960

猜你喜欢

转载自blog.csdn.net/CPP_MAYIBO/article/details/86769791