jobconf和job之间的基本区别是什么?

时间:2013-08-23 12:03:00

标签: hadoop mapreduce bigdata

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

JobClient.runJob(jobconf);

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

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

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

任何人都可以向我解释这个概念吗?

2 个答案:

答案 0 :(得分:24)

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

如果您刚接触hadoop,请立即开始使用新API(例如JobConfiguration而不是JobConf)。确保不从mapred包中导入任何内容。当您使用旧API在互联网上找到示例时,可以使用this presentationthis guide将其转换为新的API。

答案 1 :(得分:3)

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

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