【问题标题】:How can I turn off hadoop speculative execution from Java如何从 Java 关闭 hadoop 推测执行
【发布时间】:2014-06-09 13:49:23
【问题描述】:

阅读Hadoop speculative task execution后,我尝试使用新的Java api关闭推测执行,但没有效果。

这是我的主课:

public class Main {

  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();

    //old api:
    //conf.setBoolean("mapred.map.tasks.speculative.execution", false);
    //new api:
    conf.setBoolean("mapreduce.map.speculative", false);

    int res = ToolRunner.run(conf, new LogParserMapReduce(), args);
    System.exit(res);
  }
}

我的 MapReducer 是这样开始的:

@Override
public int run(String[] args) throws Exception {
    Configuration conf = super.getConf();

    /*
     * Instantiate a Job object for your job's configuration.  
     */
    Job job = Job.getInstance(conf);

但是当我查看日志时,我看到了:

2014-04-24 10:06:21,418 INFO org.apache.hadoop.mapreduce.lib.input.FileInputFormat (main): Total input paths to process : 16
2014-04-24 10:06:21,574 INFO org.apache.hadoop.mapreduce.JobSubmitter (main): number of splits:26

如果我理解,那么这意味着推测执行仍在进行,否则如果我只有 16 个输入文件,为什么会有 26 个拆分。我弄错了吗?

注意:我相信我使用了新的 api,因为我在日志中看到了这些警告:

2014-04-24 10:06:21,590 INFO org.apache.hadoop.conf.Configuration.deprecation (main): mapred.job.classpath.files is deprecated. Instead, use mapreduce.job.classpath.files

【问题讨论】:

    标签: java hadoop elastic-map-reduce speculative-execution


    【解决方案1】:

    “16 个文件 = 16 个映射器”这是一个错误的假设。

    “16 个文件 = 最少 16 个映射器”这是正确的。

    如果 16 个文件中的某些文件大于块大小,则将它们拆分为多个映射器。因此,您的 16 个文件生成 26 个映射器可能不是因为推测执行。

    在 Conf 中设置值当然有效。您可以通过检查您的 job.xml 来验证

    【讨论】:

    • 确实如此。另一个线索:在我关闭推测执行之前,我通常会看到几个被杀死的任务,但是因为它关闭了,所以没有被杀死的任务
    【解决方案2】:

    您的设置“地图任务不进行推测执行”很好。另一种设置它运行时(使实验/测试更容易)的方法是在命令行中传递相应的参数(-s)。因此,例如,下面的推测执行地图设置为关闭,但对于减速器是打开的:

    bin/hadoop jar -Dmapreduce.map.speculative=false \
                   -Dmapreduce.reduce.speculative=true <jar>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-19
      • 2013-02-16
      • 2015-07-15
      • 2013-01-27
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多