Hadoop/Hbase: java.lang.NoClassDefFoundError: org/apache/had



我安装了hadoop和Hbase,据我所知,它们都运行良好。当尝试使用hadoop构建jar时,我得到了一个

java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

错误,在我的maven依赖项中使用Hbase 0.90.2版本。

我认为这是一个相当旧的Hbase版本,我不确定这个旧版本是否与hadoop2.7.2甚至Java8兼容。因此,我尝试在我的maven依赖性中使用Hbase版本0.99.2,但后来我得到了

Failed to execute goal on project exercise_2: Could not resolve dependencies for project com.company.exercise_2:exercise_2:jar:1.0-SNAPSHOT: Failure to find org.apache.hbase:hbase:jar:0.99.2 in http://repo.maven.apache.org/maven2 was cached in the local repository

maven插件出错。我做错了什么?

这是我的pom.xml:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-hdfs</artifactId>
    <version>2.7.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-mapreduce-client-core</artifactId>
    <version>2.7.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>2.7.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase</artifactId>
    <version>0.99.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-client</artifactId>
    <version>1.1.2</version>
    <scope>provided</scope>
</dependency>

这似乎是jar缓存问题,我认为无论使用哪个版本的hbase,HbaseConfiguration都是常见的类。

您可以手动删除hbase的本地存储库文件,然后再次尝试mvn XXXX命令吗。

然后Maven将尝试下载并修复类路径。

对于交叉检查,请使用mvn-X选项来查看它试图下载哪个版本的jar。

由于这个罐子的范围是

提供

交叉检查集群中这个jar的hbase版本。通过使用"hbase classpath"并检查此jar版本是否与pom.xml的maven存储库的jar文件版本紧密匹配。

这应该能解决问题。

最新更新