我一直收到这个错误。我已经在类路径中包含了hadoop commons和核心库,但我仍然会收到此错误.Help会受到高度赞赏
答案 0 :(得分:11)
以下是如何进行故障排除:查看正在执行的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您正在使用此依赖项进行构建,但它表示将在运行时提供依赖项,因此您需要删除此标记或使用hadoop jar添加运行时期间-cp=/path/to/jar.jar
。像这样的范围的另一个例子是'test',它表示在单元测试期间只需要路径中的jar。
答案 1 :(得分:0)
确保jar中的类路径。您可以像标记所说的那样检查它;
jar tvf target/my-jar-with-dependencies.jar | grep hadoop/conf/Configuration.class
答案 2 :(得分:-1)
将依赖项添加到hadoop-core
。