2013-11-22 106 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文件。