为什么要对MapReduce中生成的中间键进行排序?

Ara*_*ram 5 hadoop mapreduce

我明白为什么中间键值按键分组,但为什么要对它们进行排序?

Don*_*ner 1

这就是它实现分组的方式。当您按键排序时,它们会分组在一起。它是否已排序并不重要……重要的是相等的键彼此相邻。

排序可能不是最好的方法。也许某种哈希会更快:O(N) 而不是 O(NlogN)。它被实现为排序只是因为有一些应用程序需要排序键(例如 HBase/BigTable)。

最近开发了可插入排序,并且在测试版中可用。我还没有机会尝试一下。 http://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/PluggableShuffleAndPluggableSort.html