为什么map会对键进行排序而不是简单地将相同的键组合在一起?

时间:2013-01-15 06:17:32

标签: hadoop mapreduce

IMO Hadoop只需将相同的密钥组合在一起就可以节省CPU和内存

(如this answer中所述,O(n)),

而不是严格排序键(O(nlgn))。

是否存在依赖于密钥严格排序的应用程序?

1 个答案:

答案 0 :(得分:1)

你是对的,Map / Reduce作业不一定需要对键进行排序,Hadoop这样做主要是因为它是用于分组的,因为它很方便,不是因为它是必要的,这可能导致不必要的如果您的应用程序不依赖于订购,则会产生开销。

它实际上正在the MAPREDUCE Jira进行辩论,我建议阅读那里的所有评论以获取更多实施细节。

有趣的轶事,the MARS project报告使用散列而不是使用自己的实现进行排序,提升了45%。