簡體   English   中英

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM