2014-04-09 24 views
2

我想在java中與我的HDFS進行交互。當我嘗試創建一個新的Configuration對象時java.lang.NoClassDefFoundError:com/google/common當嘗試創建一個配置對象

Configuration conf = new Configuration();

我的應用程序拋出這個錯誤

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Preconditions 
    at org.apache.hadoop.conf.Configuration$DeprecationDelta.<init>(Configuration.java:306) 
    at org.apache.hadoop.conf.Configuration$DeprecationDelta.<init>(Configuration.java:319) 
    at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:401) 

我已經包括了我的Java構建路徑上的Hadoop的共同-2.0.0-cdh.4.5.0.jar,並檢查了我的HDFS其實跑步hadoop 2.0 cdh 4.5.0。

我不包括必需的罐子嗎?

回答

2

您使用的是Maven嗎?如果不是的話,建議使用maven進行依賴管理。

他們有一個簡單的依賴它封裝了所有的依賴關係:

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-client</artifactId> 
    <version>2.0.0-cdh.4.5.0</version> 
</dependency> 

但此特定錯誤是,你需要在你的classpath包括番石榴庫。但我的猜測是你會遇到新的問題。

相關問題