原始的Map-Reduce执行链是:InputSplits-->Mapper--> [Sorting/Shuffling, etc]-->Reducer-->...
现在我不希望输入拆分首先到达Mappers,而是转到其他新阶段(例如,我们可以称之为Pre-Mapper,这个类将由我自己创建)。
所以新订单将是:InputSplits -> Pre-Mapper->Mapper ->...
我正在阅读源代码。但是,我仍然找不到任何线索(我应该触摸哪些课程)。
欢迎任何建议。非常感谢你:))
答案 0 :(得分:2)
也许你应该看一下链接映射器:ChainMapper
答案 1 :(得分:1)
你可以使用两个阶段MapReduce实现它:
第一阶段:Mapper - >排序/改组 - > Reducer [这个reducer除了直接从Mapper中写入数据之外什么都不做];
第二阶段:Mapreduce;
这个阶段就是你在Pre Mapper中做的事情;
答案 2 :(得分:0)
您可以考虑覆盖MapRunner类