hadoop:classnotfound异常:wordcount$map

cgh8pdjw  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(246)

我使用hadoop版本hadoop-0.20.205.0来测试wordcount示例。我构建了jar文件,并尝试使用以下命令运行它:

  1. hadoop Jar myJar.jar wordCount input output

然而,我得到了这个例外:似乎Map器和减速器已经启动,因为你可以看到在日志中有“Map0%减少0%”。

  1. 15/08/10 11:53:27 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
  2. 15/08/10 11:53:27 WARN mapred.JobClient: No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String).
  3. 15/08/10 11:53:27 INFO input.FileInputFormat: Total input paths to process : 1
  4. 15/08/10 11:53:28 INFO mapred.JobClient: Running job: job_201508100953_0021
  5. 15/08/10 11:53:29 INFO mapred.JobClient: map 0% reduce 0%
  6. 15/08/10 11:53:41 INFO mapred.JobClient: Task Id : attempt_201508100953_0021_m_000000_0, Status : FAILED
  7. java.lang.RuntimeException: java.lang.ClassNotFoundException: WordCount$Map
  8. at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:866)
  9. at org.apache.hadoop.mapreduce.JobContext.getMapperClass(JobContext.java:199)
  10. at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:719)
  11. at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
  12. at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
  13. at java.security.AccessController.doPrivileged(Native Method)
  14. at javax.security.auth.Subject.doAs(Subject.java:415)
  15. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
  16. at org.apache.hadoop.mapred.Child.main(Child.java:249)
  17. Caused by: java.lang.ClassNotFoundException: WordCount$Map
  18. at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  19. at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  20. at java.security.AccessController.doPrivileged(Native Method)
  21. at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  22. at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
  23. at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
  24. at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
  25. at java.lang.Class.forName0(Native Method)
  26. at java.lang.Class.forName(Class.java:274)
  27. at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:819)
  28. at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:864)
  29. ... 8 more
  30. 15/08/10 11:53:47 INFO mapred.JobClient: Task Id : attempt_201508100953_0021_m_000000_1, Status : FAILED
  31. java.lang.RuntimeException: java.lang.ClassNotFoundException: WordCount$Map
  32. at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:866)
  33. at org.apache.hadoop.mapreduce.JobContext.getMapperClass(JobContext.java:199)
  34. at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:719)
  35. at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
  36. at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
  37. at java.security.AccessController.doPrivileged(Native Method)
  38. at javax.security.auth.Subject.doAs(Subject.java:415)
  39. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
  40. at org.apache.hadoop.mapred.Child.main(Child.java:249)
  41. Caused by: java.lang.ClassNotFoundException: WordCount$Map
  42. at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  43. at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  44. at java.security.AccessController.doPrivileged(Native Method)
  45. at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  46. at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
  47. at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
  48. at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
  49. at java.lang.Class.forName0(Native Method)
  50. at java.lang.Class.forName(Class.java:274)
  51. at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:819)
  52. at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:864)
  53. ... 8 more
  54. 15/08/10 11:53:53 INFO mapred.JobClient: Task Id : attempt_201508100953_0021_m_000000_2, Status : FAILED
  55. java.lang.RuntimeException: java.lang.ClassNotFoundException: WordCount$Map
  56. at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:866)
  57. at org.apache.hadoop.mapreduce.JobContext.getMapperClass(JobContext.java:199)
  58. at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:719)
  59. at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
  60. at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
  61. at java.security.AccessController.doPrivileged(Native Method)
  62. at javax.security.auth.Subject.doAs(Subject.java:415)
  63. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
  64. at org.apache.hadoop.mapred.Child.main(Child.java:249)
  65. Caused by: java.lang.ClassNotFoundException: WordCount$Map
  66. at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  67. at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  68. at java.security.AccessController.doPrivileged(Native Method)
  69. at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  70. at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
  71. at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
  72. at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
  73. at java.lang.Class.forName0(Native Method)
  74. at java.lang.Class.forName(Class.java:274)
  75. at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:819)
  76. at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:864)
  77. ... 8 more
  78. 15/08/10 11:54:05 INFO mapred.JobClient: Job complete: job_201508100953_0021
  79. 15/08/10 11:54:05 INFO mapred.JobClient: Counters: 7
  80. 15/08/10 11:54:05 INFO mapred.JobClient: Job Counters
  81. 15/08/10 11:54:05 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=25289
  82. 15/08/10 11:54:05 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
  83. 15/08/10 11:54:05 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
  84. 15/08/10 11:54:05 INFO mapred.JobClient: Launched map tasks=4
  85. 15/08/10 11:54:05 INFO mapred.JobClient: Data-local map tasks=4
  86. 15/08/10 11:54:05 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=0
  87. 15/08/10 11:54:05 INFO mapred.JobClient: Failed map tasks=1
  88. real 0m42.316s
  89. user 0m0.980s
  90. sys 0m2.828s

这是我的密码:

  1. import java.io.IOException;
  2. import java.util.*;
  3. import org.apache.hadoop.fs.Path;
  4. import org.apache.hadoop.conf.*;
  5. import org.apache.hadoop.io.*;
  6. import org.apache.hadoop.mapreduce.*;
  7. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
  8. import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
  9. import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
  10. import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
  11. public class WordCount {
  12. public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {
  13. private final static IntWritable one = new IntWritable(1);
  14. private Text word = new Text();
  15. public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
  16. String line = value.toString();
  17. StringTokenizer tokenizer = new StringTokenizer(line);
  18. while (tokenizer.hasMoreTokens()) {
  19. word.set(tokenizer.nextToken());
  20. context.write(word, one);
  21. }
  22. }
  23. }
  24. public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> {
  25. public void reduce(Text key, Iterable<IntWritable> values, Context context)
  26. throws IOException, InterruptedException {
  27. int sum = 0;
  28. for (IntWritable val : values) {
  29. sum += val.get();
  30. }
  31. context.write(key, new IntWritable(sum));
  32. }
  33. }
  34. public static void main(String[] args) throws Exception {
  35. Configuration conf = new Configuration();
  36. conf.addResource(new Path("/HADOOP_HOME/conf/core-site.xml"));
  37. conf.addResource(new Path("/HADOOP_HOME/conf/hdfs-site.xml"));
  38. Job job = new Job(conf, "wordcount");
  39. job.setOutputKeyClass(Text.class);
  40. job.setOutputValueClass(IntWritable.class);
  41. job.setMapperClass(Map.class);
  42. job.setReducerClass(Reduce.class);
  43. job.setInputFormatClass(TextInputFormat.class);
  44. job.setOutputFormatClass(TextOutputFormat.class);
  45. FileInputFormat.addInputPath(job, new Path(args[0]));
  46. FileOutputFormat.setOutputPath(job, new Path(args[1]));
  47. job.waitForCompletion(true);
  48. }
  49. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题