Thanks Jeff for the solution. I think this is the right one. However, I
could find another fix. I found that inside the new Job class, the *
deprecated* class JobConf is used. Actually, there is an instance of it in
its parent class JobContext. So, I added the following line in my code and
now it is running:
((JobConf) job.getConfiguration()).setJar("/path/to/my.jar");
Regards,
Farhan
On Fri, Dec 18, 2009 at 11:31 AM, Jeff Zhang <[email protected]> wrote:
> You should add the jar to the classpath of your eclipse project. Right
> click the jar and choose Build path ---> Add to Build Path.
>
> Jeff Zhang
>
>
>
> On Fri, Dec 18, 2009 at 9:24 AM, Farhan Husain <[email protected]
> >wrote:
>
> > I tried to do that but it did not work. I copied the jar file to the
> > eclipse
> > project folder, in the bin directory, in the directory inside bin where
> my
> > main class file is, in hadoop directory and in hadoop's lib directory.
> None
> > of these worked. I am still getting the following error:
> >
> > 09/12/18 11:17:58 WARN mapred.JobClient: No job jar file set. User
> classes
> > may not be found. See JobConf(Class) or JobConf#setJar(String).
> >
> > I have not used any deprecated classes/methods yet it refers to the
> > deprecated class JobConf. Should I fall back to the old deprecated API of
> > 0.18.3 which I am used to work with? Please provide suggestions.
> >
> > Thanks,
> > Farhan
> >
> > On Thu, Dec 17, 2009 at 7:10 PM, Jeff Zhang <[email protected]> wrote:
> >
> > > You should put the jar on your classpath, and then hadoop will find the
> > jar
> > > which contain the class you specified.
> > >
> > > Jeff Zhang
> > >
> > >
> > > 2009/12/17 Farhan Husain <[email protected]>
> > >
> > > > Where should I put the jar file then? Using the setJar method I could
> > > > specify a local file system path to the jar file.
> > > >
> > > > 2009/12/18 Jeff Zhang <[email protected]>
> > > >
> > > > > You can set jar file by using Job. setJarByClass(Class<?> cls)
> > > > >
> > > > >
> > > > > Jeff Zhang
> > > > >
> > > > >
> > > > > -----Original Message-----
> > > > > From: Farhan Husain [mailto:[email protected]]
> > > > > Sent: 2009年12月17日 14:44
> > > > > To: [email protected]
> > > > > Subject: Alternative to JobConf
> > > > >
> > > > > The *org.apache.hadoop.mapred.JobConf* class is deprecated in
> version
> > > > > 0.20.1. I tried to use the *org.apache.hadoop.mapreduce.Job* class
> > > > instead
> > > > > but found no way to set the jar file. Can anyone tell me how to run
> a
> > > job
> > > > > with no deprecated API in version 0.20.1?
> > > > >
> > > > > Thanks,
> > > > > Farhan
> > > > >
> > > > >
> > > >
> > >
> >
>