在我看来,如果将相同的键组合在一起,Hadoop可以节省CPU和内存
(在这个答案中,它是O(n)
),
而不是严格排序键(即O(nlgn)
)。
是否存在依赖于键严格排序的应用程序?
你是对的,Map/Reduce作业不一定需要对键进行排序,Hadoop这样做主要是因为它用于分组,因为它很方便,而不是因为它是必要的,如果你的应用程序不依赖于排序,这可能会导致不必要的开销。
实际上MAPREDUCE Jira上正在讨论这个问题,我建议阅读所有的评论,以获得更多的实现细节。
有趣的是,MARS项目报告使用哈希而不是使用自己的实现进行排序,提高了45%。