我正在使用ChainReducer来构建以下模式
Map1 --> Reduce --> Map2
我希望Map2步骤仅在Reduce步骤完成后启动。 hadoop map中是否有属性reduce来设置它。
答案 0 :(得分:1)
您应该做的是以下内容:
ChainMapper.addMapper(generalConf, Map1.class, ..., new JobConf(false));
ChainReducer.setReducer(generalConf, Reduce.class, ..., new JobConf(false));
ChainReducer.addMapper(generalConf, Map2.class, ..., true, new JobConf(false));
// execute the job with generalConf
上述代码将保证Map2
的执行只会在Reduce
完成时启动。