Re: Re: Hadoop NoClassDefFoundError
This is the result ./home/laozhao0 $ unzip -l myjob.jarArchive: /home/laozhao0/myjob.jar Length Date Time Name - -- - 0 04-15-2014 14:54 META-INF/ 71 04-15-2014 14:54 META-INF/MANIFEST.MF 1300 04-15-2014 14:54 MyJob$MapClass.class 1628 04-15-2014 14:54 MyJob$Reduce.class 2160 04-15-2014 14:54 MyJob.class - --- 5159 5 files laozh...@sina.cn From: Stanley ShiDate: 2014-04-16 10:25To: user@hadoop.apache.orgSubject: Re: Re: Hadoop NoClassDefFoundErrorcan 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 YuDate: 2014-04-15 16:14To: user@hadoop.apache.org Subject: Re: Hadoop NoClassDefFoundErrorPlease 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 MapperText,Text,Text,Text{ @Override public void map(Text key,
Re: Re: Hadoop NoClassDefFoundError
When i unzip my jar.. i get the class files inside the package hirarchy while in your case all files are lying outside? are you sure your jar was properly created? On Wed, Apr 16, 2014 at 1:21 PM, laozh...@sina.cn laozh...@sina.cn wrote: This is the result . /home/laozhao0 $ unzip -l myjob.jar Archive: /home/laozhao0/myjob.jar Length Date Time Name - -- - 0 04-15-2014 14:54 META-INF/ 71 04-15-2014 14:54 META-INF/MANIFEST.MF 1300 04-15-2014 14:54 MyJob$MapClass.class 1628 04-15-2014 14:54 MyJob$Reduce.class 2160 04-15-2014 14:54 MyJob.class - --- 5159 5 files -- laozh...@sina.cn *From:* Stanley Shi s...@gopivotal.com *Date:* 2014-04-16 10:25 *To:* user@hadoop.apache.org *Subject:* Re: Re: Hadoop NoClassDefFoundError 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.cnwrote: 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.cnwrote: 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 MapperText,Text,Text,Text
Hadoop NoClassDefFoundError
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 outputException 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 MapperText,Text,Text,Text{ @Override public void map(Text key, Text value, OutputCollectorText, Text output, Reporter reporter) throws IOException { output.collect(value, key); } } public static class Reduce extends MapReduceBase implements ReducerText,Text,Text,Text{ @Override public void reduce(Text key, IteratorText values, OutputCollectorText, 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 ! 2014-04-15_150135.png
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 MapperText,Text,Text,Text{ @Override public void map(Text key, Text value, OutputCollectorText, Text output, Reporter reporter) throws IOException { output.collect(value, key); } } public static class Reduce extends MapReduceBase implements ReducerText,Text,Text,Text{ @Override public void reduce(Text key, IteratorText values, OutputCollectorText, 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_150135.png
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 MapperText,Text,Text,Text{ @Override public void map(Text key, Text value, OutputCollectorText, Text output, Reporter reporter) throws IOException { output.collect(value, key); } } public static class Reduce extends MapReduceBase implements ReducerText,Text,Text,Text{ @Override public void reduce(Text key, IteratorText values, OutputCollectorText, 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_150135.png
Re: Re: Hadoop NoClassDefFoundError
Thank you for your advice . When i user your command , i get the below error info .$ hadoop jar myjob.jar myjob.MyJob input outputException 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 YuDate: 2014-04-15 16:14To: user@hadoop.apache.orgSubject: Re: Hadoop NoClassDefFoundErrorPlease 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 MapperText,Text,Text,Text{ @Override public void map(Text key, Text value, OutputCollectorText, Text output, Reporter reporter) throws IOException { output.collect(value, key); } } public static class Reduce extends MapReduceBase implements ReducerText,Text,Text,Text{ @Override public void reduce(Text key, IteratorText values, OutputCollectorText, Text output, Reporter reporter) throws IOException { String csv = ; while(values.hasNext()){ if(csv.length() 0)
Re: Re: Hadoop NoClassDefFoundError
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.cnwrote: 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 MapperText,Text,Text,Text{ @Override public void map(Text key, Text value, OutputCollectorText, Text output, Reporter reporter) throws IOException { output.collect(value, key); } } public static class Reduce extends MapReduceBase implements ReducerText,Text,Text,Text{ @Override public void reduce(Text key, IteratorText values, OutputCollectorText, 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