I am facing issues while trying to run a job from windows (through eclipse) on my hadoop cluster on my RHEL VM's. When I run it as "run on hadoop" it works fine, but when I run it as a java application, it throws classnotfound exception
INFO: Task Id : attempt_201201101527_0037_m_000000_0, Status : FAILED java.lang.RuntimeException: java.lang.ClassNotFoundException: TestHadoop$Map at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:866) at org.apache.hadoop.mapreduce.JobContext.getMapperClass(JobContext.java:195) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:718) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369) at org.apache.hadoop.mapred.Child$4.run(Child.java:259) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) at org.apache.hadoop.mapred.Child.main(Child.java:253) Below is the stub: public class TestHadoop extends Configured { public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); context.write(word, one); } } } public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val:values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(true); conf.set("fs.default.name","hdfs://vm-acd2-4c51:54310/"); conf.set("mapred.job.tracker","hdfs://vm-acd2-4c51:54311/"); conf.set("mapreduce.jobtracker.staging.root.dir","/app/hadoop/mapred/staging"); Job jobconf = new Job(conf,"TestHadoop"); jobconf.setJarByClass(TestHadoop.class); jobconf.setOutputKeyClass(Text.class); jobconf.setOutputValueClass(IntWritable.class); jobconf.setMapperClass(Map.class); jobconf.setCombinerClass(Reduce.class); jobconf.setReducerClass(Reduce.class); jobconf.setInputFormatClass(TextInputFormat.class); jobconf.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.setInputPaths(jobconf, new Path("/tmp/Hadoop_Temp_Data/Input/")); FileOutputFormat.setOutputPath(jobconf, new Path("/tmp/Hadoop_Temp_Data/Output1/")); jobconf.waitForCompletion(true); } } Any help will be greatly appreciated! Thanks Hema Subramanian