为什么要对map reduce中生成的中间键进行排序



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

这就是它实现分组的方式。按关键字排序时,它们会组合在一起。排序真的没关系。。。重要的是相等的键紧挨着。

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

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

根据谷歌关于MapReduce 的论文

我们保证在给定的分区中,中间键/值对以递增的键顺序进行处理。这种排序保证使按分区生成排序的输出文件变得容易,当输出文件格式需要支持按键进行有效的随机访问查找,或者输出用户发现对数据进行排序很方便时,这一点很有用。

Hadoop是基于谷歌的论文实现的。并非所有算法都需要对数据进行排序。排序在Hadoop中是可插入的,并且可以使用备用排序。点击此处了解更多信息。

相关内容

  • 没有找到相关文章