what is the basic difference between jobconf and j

2019-02-06 01:55发布

问题:

hi i wanted to know the basic difference between jobconf and job objects,currently i am submitting my job like this

JobClient.runJob(jobconf);

i saw other way of submitting jobs like this

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

and how can i specify the sortcomparator class for the job using jobconf?

can any one explain me this concept?

回答1:

In short: JobConf and everything else in the org.apache.hadoop.mapred package is part of the old API used to write hadoop jobs, Job and everything in the org.apache.hadoop.mapreduce package is part of the new and preferred API to write hadoop jobs. Both APIs generally provide equivalent core functionality.

If you're new to hadoop just start using the new API (i.e. Job and Configuration instead of JobConf). Make sure to not import anything from the mapred package. When you find examples on the internet using the old API you can use this presentation or this guide to translate it to the new API.



回答2:

In old API job configuration is done by JobConf object. In the new API, job configuration is done through a Configuration object.

Job control is performed through the Job class in the new API, rather than the old JobClient, which no longer exists in the new API.