我从Hadoop中reduce任务何时开始了解到hadoop中的reduce任务包含三个步骤:shuffle、sort和reduce,其中排序(以及之后的reduce)只能在所有映射器完成后开始。有没有办法在每次映射器完成时开始排序和减少。
例如,让我们只有一项使用映射器 mapperA 和 mapperB 以及 2 个 reducer 的工作。我想做的是:
- mapperA 完成
- shuffles 复制 mapperAs 输出的适当分区让我们说 reducer 1 和 2
- sort on reducer 1 和 2 开始排序和归约并生成一些中间输出
- 现在mapperB完成
- shuffles 将 mapperBs 输出的适当分区复制到 reducer 1 和 2
- 在 reducer 1 和 2 上的 sort 和 reduce 再次开始,reducer 将新输出与旧输出合并
这可能吗?谢谢