java.lang.noclassdeffounderror:com/google/common试图创建配置对象时

mrphzbgm  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(683)

我正在尝试从java内部与hdfs交互。当我尝试创建新的配置对象时
configuration conf=新配置();
我的应用程序抛出此错误

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-common-2.0.0-cdh.4.5.0.jar,并检查了hdfs是否正在运行hadoop2.0cdh4.5.0。
我不包括一个必要的jar吗?

nle07wnf

nle07wnf1#

你在用maven吗?如果不是,建议使用maven进行依赖关系管理。
它们有一个简单的依赖关系,它封装了所有依赖关系:

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

但是这个特殊的错误来自guava库,您需要将它包含在类路径中。但我猜你会遇到新的问题。

相关问题