在谷歌的论文中,它指出:
我们保证在给定分区内,中间件 键/值对按递增键顺序处理。这个订购 保证可以轻松生成每个排序的输出文件 分区,在输出文件格式需要时很有用 支持按键或输出用户进行有效的随机访问查找 发现将数据排序很方便。
我还尝试了一个简单的例子" wordcount"与" mrJob" (Python),它按预期工作。在输出中,所有键(单词)都按字母顺序(升序)排列。
但是,我不明白为什么可能。 MapReduce用于并行处理,这意味着所有子进程都是独立的。例如,reducer计算单词的频率并写入输出然后结束。但是对于订单输出,显然一个子流程必须等待其他人在写入其输出之前比较密钥。这意味着它无法利用并行处理的强大功能。
那么他们如何解决呢?
谢谢。