java.lang.ClassNotFoundException:org.apache.hadoop.conf.Configuration

ili*_*den 6 java filesystems hadoop

我一直收到这个错误.我已经在类路径中包含了hadoop commons和核心库,但我仍然不断收到此错误.帮助将受到高度赞赏

Tri*_*eid 12

以下是如何进行故障排除:查看正在执行的jar内部,以查看该类文件是否确实存在:

jar tvf target/my-jar-with-dependencies.jar | grep hadoop/conf/Configuration.class
Run Code Online (Sandbox Code Playgroud)

如果不是,则需要将其添加到类路径中或更改jar的打包方式.

您使用Maven或类似的构建工具吗?您可能具有"范围"的依赖关系,这意味着它只会在某些情况下编译到您的jar中.

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>${hadoop.version}</version>
        <scope>provided</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

在此示例中,scope标记告诉Maven您正在使用此依赖项进行构建,但它表示将在运行时提供依赖项,因此您需要删除此标记或-cp=/path/to/jar.jar在运行时添加hadoop jar .像这样的范围的另一个例子是'test',它表示在单元测试期间仅在路径中需要jar.


Abh*_*hek -2

添加依赖关系到hadoop-core.