![](/img/trans.png)
[英]Have hadoop/*-common.jar included still got “java.lang.ClassNotFoundException:org.apache.hadoop.conf.Configuration”
[英]java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
我一直收到這個錯誤。我已經在類路徑中包含了 hadoop commons 和核心庫,但我仍然不斷收到這個錯誤。非常感謝幫助
以下是故障排除的方法:查看您正在執行的 jar 內部以查看該類文件是否確實存在:
jar tvf target/my-jar-with-dependencies.jar | grep hadoop/conf/Configuration.class
如果不是,則需要將其添加到類路徑中或更改 jar 的打包方式。
您使用的是 Maven 還是一些類似的構建工具? 您可能有一個帶有“范圍”的依賴項,這意味着它只會在某些情況下被編譯到您的 jar 中。
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
<scope>provided</scope>
</dependency>
在這個例子中,scope 標簽告訴 Maven 你正在使用這個依賴來構建,但它表明依賴將在運行時提供,所以你需要刪除這個標簽或使用-cp=/path/to/jar.jar
添加 hadoop jar -cp=/path/to/jar.jar
在運行時。 像這樣的范圍的另一個例子是“test”,它表明 jar 只在單元測試期間的路徑中需要。
確保您的 jar 中的類路徑。 你可以像馬克說的那樣檢查它;
jar tvf target/my-jar-with-dependencies.jar | grep hadoop/conf/Configuration.class
添加對hadoop-core
依賴。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.