hadoop流是否在地图和减少阶段之间使用稳定的排序?

时间:2011-12-20 18:12:40

标签: sorting hadoop mergesort stable-sort

这对多阶段工作有影响。例如,如果我们按作业的阶段1中的键“a”和作业的阶段2中的键“b”(将阶段1输出作为stdin)排序,我们可以假设两个阶段完成时记录是用键“b”排序,其次用键“a”排序?出于此问题的目的,假设映射器和缩减器不会置换记录顺序。还假设reduce任务的数量是1或更多。

请记住,答案可能会因阶段1的reduce任务数量而异。例如,如果阶段1的reduce任务数大于1,则密钥a将被拆分为多个文件(尽管在关于每个文件的排序顺序)。但是,当只有一个reduce任务时,所有值都将出现在同一个文件中,这可能是稳定性的必要条件,具体取决于实现。

如果答案是肯定的,那么指向相应文档的链接将非常有用。

谢谢,

的setjmp

1 个答案:

答案 0 :(得分:2)

默认情况下,Hadoop不会强制执行您想要的稳定排序属性。

Hadoop流媒体有比较器和分区器来帮助将地图中的结果排序到reduce;看看here

修改:更新了断开的链接