为什么在缩小分区之前需要对分区进行排序?

时间:2018-09-30 21:06:27

标签: java hadoop mapreduce hadoop-partitioning

来自here

  

根据hadoop权威指南“在每个分区中,背景   线程按键执行内存中排序,如果有组合器   函数,它在排序的输出上运行。

我认为分区对应于一个键,因此reduce任务将减少仅与一个键相关的一堆值。如果只有一个键,那么分区是否已经排序?

毕竟,对我来说,here的这个答案似乎与前面的引用矛盾:

  

排序可以节省减速器的时间,有助于轻松区分何时   一个新的reduce任务应该开始。它只是开始一个新的reduce任务,   当排序的输入数据中的下一个键与   简而言之。

这是说归约任务与一个键相关联,并且由于每个归约任务一个分区是一个分区,因此一个分区与一个键相关联。那么,如果只有一个键,那么每个分区中为什么必须有一个排序?

0 个答案:

没有答案