can do you an "unzip -l myjob.jar" to see if your jar file has the correct hierarchy?
Regards, *Stanley Shi,* On Tue, Apr 15, 2014 at 6:53 PM, laozh...@sina.cn <laozh...@sina.cn> wrote: > Thank you for your advice . When i user your command , i get the below > error info . > $ hadoop jar myjob.jar myjob.MyJob input output > Exception in thread "main" java.lang.ClassNotFoundException: myjob.MyJob > at java.net.URLClassLoader$1.run(URLClassLoader.java:366) > > at java.net.URLClassLoader$1.run(URLClassLoader.java:355) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:354) > at java.lang.ClassLoader.loadClass(ClassLoader.java:423) > at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:264) > at org.apache.hadoop.util.RunJar.main(RunJar.java:149) > > ------------------------------ > > > *From:* Azuryy Yu <azury...@gmail.com> > *Date:* 2014-04-15 16:14 > *To:* user@hadoop.apache.org > *Subject:* Re: Hadoop NoClassDefFoundError > Please use: hadoop jar myjob.jar myjob.MyJob input output > > > On Tue, Apr 15, 2014 at 3:06 PM, laozh...@sina.cn <laozh...@sina.cn>wrote: > >> Hello EveryOne: >> I am new to hadoop,and i am reading Hadoop in action. >> When i tried to run a demo from this book,I got a problem and could not >> find answer from the net. Can you help me on this ? >> >> below is the error info : >> >> $ hadoop jar myjob.jar MyJob input output >> Exception in thread "main" java.lang.NoClassDefFoundError: MyJob (wrong >> name: myjob/MyJob) >> at java.lang.ClassLoader.defineClass1(Native Method) >> at java.lang.ClassLoader.defineClass(ClassLoader.java:791) >> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) >> at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) >> at java.net.URLClassLoader.access$100(URLClassLoader.java:71) >> at java.net.URLClassLoader$1.run(URLClassLoader.java:361) >> at java.net.URLClassLoader$1.run(URLClassLoader.java:355) >> at java.security.AccessController.doPrivileged(Native Method) >> at java.net.URLClassLoader.findClass(URLClassLoader.java:354) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:423) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:356) >> at java.lang.Class.forName0(Native Method) >> at java.lang.Class.forName(Class.java:264) >> at org.apache.hadoop.util.RunJar.main(RunJar.java:149) >> >> and this is the command that i compile the .java , I compiled in Win7 and >> ran on ubuntu . >> >> >> below is MyJob.java >> >> package myjob; >> >> import java.io.IOException; >> import java.util.Iterator; >> >> import org.apache.hadoop.conf.Configuration; >> import org.apache.hadoop.conf.Configured; >> import org.apache.hadoop.fs.Path; >> import org.apache.hadoop.io.Text; >> import org.apache.hadoop.mapred.FileInputFormat; >> import org.apache.hadoop.mapred.FileOutputFormat; >> import org.apache.hadoop.mapred.JobClient; >> import org.apache.hadoop.mapred.JobConf; >> import org.apache.hadoop.mapred.KeyValueTextInputFormat; >> import org.apache.hadoop.mapred.MapReduceBase; >> import org.apache.hadoop.mapred.Mapper; >> import org.apache.hadoop.mapred.OutputCollector; >> import org.apache.hadoop.mapred.Reducer; >> import org.apache.hadoop.mapred.Reporter; >> import org.apache.hadoop.mapred.TextOutputFormat; >> import org.apache.hadoop.util.Tool; >> import org.apache.hadoop.util.ToolRunner; >> >> public class MyJob extends Configured implements Tool{ >> >> @Override >> public int run(String[] args) throws Exception { >> Configuration conf = getConf(); >> JobConf job = new JobConf(conf,MyJob.class); >> Path in = new Path(args[0]); >> Path out = new Path(args[1]); >> FileInputFormat.setInputPaths(job, in); >> FileOutputFormat.setOutputPath(job, out); >> job.setJobName("MyJob"); >> job.setJarByClass(MyJob.class); >> job.setMapperClass(MapClass.class); >> job.setReducerClass(Reduce.class); >> >> job.setInputFormat(KeyValueTextInputFormat.class); >> job.setOutputFormat(TextOutputFormat.class); >> job.setOutputKeyClass(Text.class); >> job.setOutputValueClass(Text.class); >> job.set("key.value.separator.in.input.line",","); >> JobClient.runJob(job); >> return 0; >> } >> >> public static class MapClass extends MapReduceBase implements >> Mapper<Text,Text,Text,Text>{ >> >> @Override >> public void map(Text key, Text value, OutputCollector<Text, Text> output, >> Reporter reporter) throws IOException { >> output.collect(value, key); >> } >> } >> >> public static class Reduce extends MapReduceBase implements >> Reducer<Text,Text,Text,Text>{ >> >> @Override >> public void reduce(Text key, Iterator<Text> values, >> OutputCollector<Text, Text> output, Reporter reporter) >> throws IOException { >> String csv = ""; >> while(values.hasNext()){ >> if(csv.length() > 0) >> csv += ","; >> csv += values.next().toString(); >> } >> } >> } >> >> public static void main(String[] args) throws Exception { >> int res = ToolRunner.run(new Configuration(), new MyJob(), args); >> System.exit(res); >> } >> } >> ------------------------------ >> Thank you for your kindly help ! >> > >
<<inline: 2014-04-15_15013(04-15-18-51-38).png>>