排序—map reduce中Map器阶段之后隐式排序背后的动机

o2rvlv0m  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(431)

我试图理解为什么map reduce在shuffle和sort阶段在map端和reduce端都进行隐式排序,这表现为内存和磁盘排序的混合(对于大型数据集来说可能非常昂贵)。
我担心的是,在运行map reduce作业时,性能是一个重要的考虑因素,在将Map器的输出抛给reducer之前,基于键的隐式排序将对处理大型数据集时的性能产生很大影响。
我知道在某些明确要求排序的情况下,排序可以被证明是一种好处,但这并不总是正确的?那么,为什么hadoopMapreduce中存在隐式排序的概念呢?
对于我在提到无序排列和排序阶段时所说的内容的任何引用,请随意阅读以下文章: Map-Reduce: Shuffle and Sort 在我的博客:hadoop的一些突出的理解

vmpqdwk3

vmpqdwk31#

在发布这个问题之后,我想到了一个可能的解释:
排序只是为了将与某个特定键对应的所有记录聚合在一起,以便将与该单个键对应的所有这些记录发送到单个reducer(hadoop map reduce中的默认分区逻辑)。因此,可以说,通过在Map器阶段之后按键对所有记录进行排序,只允许将对应于单个键的所有记录组合在一起,其中按排序顺序排列的键的顺序可能仅用于某些用例,例如对大数据集进行排序。
如果人们能证实上述观点,如果他们也这么认为,那就太好了。谢谢。

相关问题