在Hadoop2.6.0中运行自定义投机者



我正在编写我的自定义推测程序,我查看了文档,默认为"DefaultSpeculator.java",设置在Hadoop核心的"MRAppMaster.java" (function createSpeculator())类中。我想知道在执行我的工作时,你是否可以在运行时更新/更改投机者,因为我需要测试大约5个投机者。

谢谢!!!

可以为映射任务打开和关闭推测执行,并在集群范围内或每个作业的基础上减少任务。

投机者在MRAppMaster(Map Reduce Application Master)中实例化。正如您在问题中提到的,以下是MRAppMaster::serviceInit()函数中的一段代码,它实例化了投机者:

if (conf.getBoolean(MRJobConfig.MAP_SPECULATIVE, false)
      || conf.getBoolean(MRJobConfig.REDUCE_SPECULATIVE, false)) {
    //optional service to speculate on task attempts' progress
    speculator = createSpeculator(conf, context);
    addIfService(speculator);
}

它检查JobConfig,查看Map或Reduce任务的推测执行是否打开,然后创建推测器。

由于投机者是在MRAppMaster中创建的,因此可以为每个作业启用自定义投机者。

以下是推测执行属性:

  • mapreduce.map.investigative:为映射任务启用推测执行
  • mapreduce.reduced.reduced:启用reduce的推测执行任务
  • yarn.app.mapreduce.am.job.expulator.class:投机者类
  • yarn.app.mapreduce.am.job.task.aestimator.class:估计器类。这是投机者用来估计任务的运行时间

相关内容

  • 没有找到相关文章

最新更新