at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
生成jar文件使用的命令是jar -cvf wordcount.jar -C WordCount;(编译生成的class文件放在WordCount文件夹内)导致出现找不到WordCount类,但是jar包里明明有WordCount类。为何寻找不到?
将生成jar文件改成jar -cvf wordcount.jar manifest -C WordCount/ . 后。在bin/hadoop jar wordcount.jar WordCount wordcount_input wordcount_output后,运行成功不报错。
至于为何?应该是manifest将其class类显示出来,以便类能够被找到。manifest是生存jar的描述性文件,有了manifest,就给程序提供了如何在里面寻找class的方法与路径,故而就不出现classnotfoundexception的错误了。
15/04/24 07:15:35 INFO input.FileInputFormat: Total input paths to process : 2
15/04/24 07:15:36 INFO util.NativeCodeLoader: Loaded the native-hadoop library
15/04/24 07:15:36 WARN snappy.LoadSnappy: Snappy native library not loaded
15/04/24 07:15:37 INFO mapred.JobClient: Running job: job_201504231843_0003
15/04/24 07:15:38 INFO mapred.JobClient: map 0% reduce 0%
15/04/24 07:17:04 INFO mapred.JobClient: map 50% reduce 0%
15/04/24 07:17:07 INFO mapred.JobClient: map 100% reduce 0%
15/04/24 07:17:23 INFO mapred.JobClient: map 100% reduce 100%
15/04/24 07:17:28 INFO mapred.JobClient: Job complete: job_201504231843_0003
15/04/24 07:17:28 INFO mapred.JobClient: Counters: 29
15/04/24 07:17:28 INFO mapred.JobClient: Job Counters
15/04/24 07:17:28 INFO mapred.JobClient: Launched reduce tasks=1
15/04/24 07:17:28 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=147860
15/04/24 07:17:28 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
15/04/24 07:17:28 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
15/04/24 07:17:28 INFO mapred.JobClient: Launched map tasks=2
15/04/24 07:17:28 INFO mapred.JobClient: Data-local map tasks=2
15/04/24 07:17:28 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=17613
15/04/24 07:17:28 INFO mapred.JobClient: File Output Format Counters
15/04/24 07:17:28 INFO mapred.JobClient: Bytes Written=150
15/04/24 07:17:28 INFO mapred.JobClient: FileSystemCounters
15/04/24 07:17:28 INFO mapred.JobClient: FILE_BYTES_READ=232
15/04/24 07:17:28 INFO mapred.JobClient: HDFS_BYTES_READ=378
15/04/24 07:17:28 INFO mapred.JobClient: FILE_BYTES_WRITTEN=65245
15/04/24 07:17:28 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=150
15/04/24 07:17:28 INFO mapred.JobClient: File Input Format Counters
15/04/24 07:17:28 INFO mapred.JobClient: Bytes Read=130
15/04/24 07:17:28 INFO mapred.JobClient: Map-Reduce Framework
15/04/24 07:17:28 INFO mapred.JobClient: Map output materialized bytes=238
15/04/24 07:17:28 INFO mapred.JobClient: Map input records=8
15/04/24 07:17:28 INFO mapred.JobClient: Reduce shuffle bytes=238
15/04/24 07:17:28 INFO mapred.JobClient: Spilled Records=38
15/04/24 07:17:28 INFO mapred.JobClient: Map output bytes=218
15/04/24 07:17:28 INFO mapred.JobClient: CPU time spent (ms)=7040
15/04/24 07:17:28 INFO mapred.JobClient: Total committed heap usage (bytes)=247537664
15/04/24 07:17:28 INFO mapred.JobClient: Combine input records=22
15/04/24 07:17:28 INFO mapred.JobClient: SPLIT_RAW_BYTES=248
15/04/24 07:17:28 INFO mapred.JobClient: Reduce input records=19
15/04/24 07:17:28 INFO mapred.JobClient: Reduce input groups=19
15/04/24 07:17:28 INFO mapred.JobClient: Combine output records=19
15/04/24 07:17:28 INFO mapred.JobClient: Physical memory (bytes) snapshot=336658432
15/04/24 07:17:28 INFO mapred.JobClient: Reduce output records=19
15/04/24 07:17:28 INFO mapred.JobClient: Virtual memory (bytes) snapshot=1123164160
15/04/24 07:17:28 INFO mapred.JobClient: Map output records=22