java.lang.RuntimeException: java.lang.ClassNotFoundException: xxxxMapper

做hadoop测试时,发现打的jar包无法使用

执行:bin/hadoop jar /opt/modules/hadoop-2.5.0/jars/wc.jar WordCountMapReduce /input/wordcount.txt /output

出现:

Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class WordCountMapReduce$WordCountMapper not found
	at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1905)
	at org.apache.hadoop.mapreduce.task.JobContextImpl.getMapperClass(JobContextImpl.java:186)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:722)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
	at java.security.AccessController.doPrivileged(Native Method)
.........

再往上查找原由看到此类警告:

java.lang.RuntimeException: java.lang.ClassNotFoundException: xxxxMapper_第1张图片

在网上看了很多博主写的资料,但多数让我没看懂,因为也是刚接触hadoop这一块,直到一位博主说是在job声明之前要加上:

job.setJarByClass(WordCountMapReduce.class);//WordCountMapReduce是自己编写的  mapreduce  java类

抱着试试的心态,果然运行成功!如果此文章没帮助到您,请阅读下面链接的文章

https://blog.csdn.net/shiqidide/article/details/8166960

这位博主也把hadoop jar xxxx.jar的流程也附上了,希望能做个参考!

你可能感兴趣的:(hadoop)