我安装了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文件版本紧密匹配。
这应该能解决问题。