如何在hadoop-1.0.4中禁用作业设置和作业清理任务

时间:2013-04-03 10:26:54

标签: hadoop mapreduce

在我的Java代码中,我想删除这些任务,因为我认为它们在我的程序中浪费了太多时间。 我尝试使用XML文件,但它不起作用:

 <property>
<name>mapreduce.job.committer.setup.cleanup.needed</name>
<value>false</value>

请以任何方式帮助我知道如何做到这一点?我认为没有必要完成2项任务。这样对吗?? 谢谢大家!

1 个答案:

答案 0 :(得分:1)

我相信你没有在mapred-config.xml中正确使用/设置属性。 您可以尝试以下两件事:

<强> 1)OutputCommittersetupJob方法中覆盖cleanupJob类和不执行任何操作

public static class NoSetupCleanupOutputCommitter extends OutputCommitter {
    @Override
    public void setupJob(JobContext jobContext) { }
    @Override
    public void cleanupJob(JobContext jobContext) { }
}

然后在run()中进行设置,如下所示:

conf.setOutputCommitter(NoSetupCleanupOutputCommitter.class);


2)您可以尝试在Java代码中设置正确的配置,如下所示:

//either one of the following configs should do according to the hadoop's version:    
conf.setBoolean("mapred.committer.job.setup.cleanup.needed", false);
conf.setBoolean("mapreduce.job.committer.task.cleanup.needed", false);