2013-11-22 86 views
0

的问题是:如果I型Hadoop的 - 地图-减少 - java.lang.NoClassDefFoundError

的hadoop罐子MY.jar name_my_class /用户/用户/输入/用户/用户/输出

和所有的我需要的类是在MY.jar中,为什么我仍然得到错误

java.lang.NoClassDefFoundError ??

我知道,这是很普遍的问题,所以,如果你认为是更好的,我会提供所有的细节和代码:)

在此先感谢

13/11/22 17:24:27 WARN mapred.LocalJobRunner: job_local1970405879_0001 
java.lang.NoClassDefFoundError: org/jocl/CLException 
at jocl.MaxTemperatureReducer.setup(MaxTemperatureReducer.java:33) 
at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:174) 
at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649) 
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418) 
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:398) 
Caused by: java.lang.ClassNotFoundException: org.jocl.CLException 
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:425) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
... 5 more 
+0

把你的异常的完整堆栈跟踪 –

+0

确保你的MapReduce代码有'job.setJarByClassName(...)'其中'...'是jar文件中的任何类。 – climbage

回答

0

它看起来像你在您的课程路径中缺少CLException类。

复制包含类org.jocl.CLException,并把它放在你的Hadoop安装的lib文件夹的jar文件。