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.