2011-11-28 68 views
1

我正在使用Hadoop 0.21.0。並嘗試運行C API庫附帶的hdfs_test應用程序。在許多問題之後,我可以編譯hdfs_test。現在,當我運行它:Hadoop HDFS測試運行問題 - org.apache.hadoop.conf.Configuration NoClassDefFoundError

./hdfs_test 

,我發現了以下錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:153) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 
at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
... 1 more 
Can't construct instance of class org.apache.hadoop.conf.Configuration 
Oops! Failed to connect to hdfs! 

任何幫助表示讚賞..謝謝

回答

1

像任何其他的Java程序所需要的依賴在類路徑中或在jar中。 Hadoop還有一個HADOOP_CLASSPATH來告訴集羣在map-reduce任務中哪裏找到依賴關係。另見How to run a Hadoop program?

+0

謝謝。這是一個依賴關係問題,但我無法使用HADOOP_CLASSPATH解決它。然而,事實證明,我並不真正瞭解CLASSPATH的工作原理。我認爲通過包含一個文件夾,你將包含所有的jar文件。我的問題是通過將路徑添加到CLASSPATH中的精確jar來解決的。 – Ticker23