18

嗨,我想知道 jobconf 和作业对象之间的基本区别,目前我正在提交这样的作业

JobClient.runJob(jobconf);

我看到了像这样提交工作的其他方式

Configuration conf = getConf();
Job job = new Job(conf, "secondary sort");
job.waitForCompletion(true);     
return 0;

以及如何使用 jobconf 为作业指定 sortcomparator 类?

谁能解释我这个概念?

4

2 回答 2

29

简而言之:包JobConf中的所有其他内容都是org.apache.hadoop.mapred用于编写 hadoop 作业的旧 API 的一部分,并且包中的Job所有内容都是用于编写 hadoop 作业org.apache.hadoop.mapreduce的新的首选 API 的一部分。两种 API 通常都提供等效的核心功能。

如果您不熟悉 hadoop,只需开始使用新的 API(即JobConfiguration而不是JobConf)。确保不要从mapred包中导入任何内容。当您在 Internet 上找到使用旧 API 的示例时,您可以使用此演示文稿本指南将其转换为新 API。

于 2013-08-23T12:42:08.503 回答
3

在旧 API 中,作业配置由 JobConf 对象完成。在新 API 中,作业配置是通过 Configuration 对象完成的。

作业控制是通过新 API 中的 Job 类执行的,而不是旧的 JobClient,后者不再存在于新 API 中。

于 2013-08-23T12:59:34.450 回答