Hi forks,

I am under hadoop 0.21.0.

What I am trying to do is loading the mapper/reducer class at runtime according 
to a config file. I use -libjars to shipping JAR files that a job is dependent 
on.

But seems it doesn't work. :(

This is the error message:
had...@master:~/eqin/joblauncher$ hadoop jar Greper.jar org.taomee.Greper 
-libjars Greper.jar jobconf/jobconfig.xml
10/10/28 09:55:06 INFO security.Groups: Group mapping 
impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping; cacheTimeout=300000
10/10/28 09:55:06 WARN conf.Configuration: mapred.used.genericoptionsparser is 
deprecated. Instead, use mapreduce.client.genericoptionsparser.used
Exception in thread "main" java.lang.ClassNotFoundException: 
org.taomee.GrepMapper
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at org.taomee.Greper.run(Greper.java:47)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:69)
        at org.taomee.Greper.main(Greper.java:65)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:192)

Greper is the main class which launches a job. It will load one of the mapper 
classes under package "org.taomee" at runtime. The class name is specified in 
jobconfig.xml. All of the classes are packed into Greper.jar.

Do you guys know why I get this exception? Is there something important I 
ignored?

Thanks.

Reply via email to