如何修改Map-Reduce执行顺序?

时间:2013-10-16 08:05:51

标签: hadoop mapreduce

原始的Map-Reduce执行链是:InputSplits-->Mapper--> [Sorting/Shuffling, etc]-->Reducer-->...

现在我不希望输入拆分首先到达Mappers,而是转到其他新阶段(例如,我们可以称之为Pre-Mapper,这个类将由我自己创建)。

所以新订单将是:InputSplits -> Pre-Mapper->Mapper ->...

我正在阅读源代码。但是,我仍然找不到任何线索(我应该触摸哪些课程)。

欢迎任何建议。非常感谢你:))

3 个答案:

答案 0 :(得分:2)

也许你应该看一下链接映射器:ChainMapper

答案 1 :(得分:1)

你可以使用两个阶段MapReduce实现它:

第一阶段:Mapper - >排序/改组 - > Reducer [这个reducer除了直接从Mapper中写入数据之外什么都不做];

第二阶段:Mapreduce;

这个阶段就是你在Pre Mapper中做的事情;

答案 2 :(得分:0)

您可以考虑覆盖MapRunner