0

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

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

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

4

1 回答 1

1

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

1) 覆盖OutputCommitter类并且在和方法中什么都不做。setupJobcleanupJob

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);
于 2013-04-03T18:18:29.217 回答