【问题标题】:Slow start of mappers after reducerreducer 后映射器启动缓慢
【发布时间】:2016-05-10 19:10:17
【问题描述】:

我正在使用 ChainReducer 构建以下模式

Map1 --> Reduce --> Map2 

我希望 Map2 步骤仅在 Reduce 步骤完成后开始。 hadoop map reduce中是否有一个属性来设置这个。

【问题讨论】:

    标签: hadoop mapreduce hadoop2


    【解决方案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完成后开始。

    【讨论】:

    • 我使用了相同的代码。第二个映射器不等待减速器完成。第二个映射器将在减速器写入数据并且不等待完成时开始处理
    • @user1690436 您确定将相同的配置传递给 ChainMapper 和 ChainReducer?能否请您发布这部分代码?
    猜你喜欢
    • 2017-02-09
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2016-05-12
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多