MapReduce编程模型概述.pptVIP

  • 5
  • 0
  • 约1.25万字
  • 约 37页
  • 2024-04-29 发布于辽宁
  • 举报

Partitioner接口的设计与实现Partitioner的作用是对Mapper产生的中间结果进行分片,以便将同一分组的数据交给同一个Reducer处理,它直接影响Reduce阶段的负载均衡。旧版API中Partitioner的类图如图3-20所示。它继承了JobConfigurable,可通过configure方法初始化。它本身只包含一个待实现的方法getPartition。该方法包含三个参数,均由框架自动传入,前面两个参数是key/value,第三个参数numPartitions表示每个Mapper的分片数,也就是Reducer的个数。Partitioner接口的设计与实现MapReduce提供了两个Partitioner实现:HashPartitioner和TotalOrderPartitioner。其中HashPartitioner是默认实现,它实现了一种基于哈希值的分片方法,代码如下:Partitioner接口的设计与实现TotalOrderPartitioner提供了一种基于区间的分片方法,通常用在数据全排序中。在MapReduce环境中,容易想到的全排序方案是归并排序,即在Map阶段,每个MapTask进行局部排序;在Reduce阶段,启动一个ReduceTask进行全局排序。由于作业只能有一个ReduceTask,因而Reduce阶段会成为作业的

文档评论(0)

1亿VIP精品文档

相关文档