是否可以使用MapReduce实现合并排序算法?我对此持怀疑态度,因为映射器或化简器无法相互通信,但有人告诉我这是MapReduce(??)的关键用例之一。我正在寻找任何实现,甚至有关如何做到这一点的线索,但我找不到任何东西。我自己对如何做到这一点一无所知......有什么想法吗?
@Edit是的。我知道MapReduce具有开箱即用的排序功能。例如,是否可以将其关闭?
合并排序是当map和reduce函数是单元函数时MapReduce所做的。查找 Terasort 基准测试以查看更多详细信息。
合并排序是mapreduce的默认功能,无需实现它,也无法更改mapreduce的排序方法,因为数据来自不同的节点到单个点,因此这里可以使用的最佳算法是mergesort。您还可以指定自己的比较器类,以按升序或降序对键进行排序。
job.setSortComparatorClass(YourClass.class);