1. 方案

看hbase官网这两个版本应该是兼容的,但是实际上有包冲突,解决方案是用hadoop包替换hbase的包。
hbase 2.4.12
hadoop 3.3.1

2.报错

2.1 启动hbase shell 报错 java.lang.NoSuchMethodError: jline.console.completer----

(base) [root@node001 logs]# hbase shell
LoadError: load error: irb/completion -- java.lang.NoSuchMethodError: jline.console.completer.CandidateListCompletionHandler.setPrintSpaceAfterFullCompletion(Z)V
  require at org/jruby/RubyKernel.java:974
  require at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:54
   <main> at classpath:/jar-bootstrap.rb:42

2.2 查看master 日志 报错:object is not an instance of declaring class

(base) [root@node001 logs]# vim hbase-root-master-node001.djin.com.log
 java.lang.IllegalArgumentException: object is not an instance of declaring class

在这里插入图片描述

3.解决

mv /opt/src/hbase-2.4.12/lib/client-facing-thirdparty/slf4j-api-1.7.33.jar /opt/src/hbase-2.4.12/lib/client-facing-thirdparty/slf4j-api-1.7.33.jar.bak
mv /opt/src/hbase-2.4.12/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /opt/src/hbase-2.4.12/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak
cp /opt/src/hadoop-3.3.1/share/hadoop/common/lib/slf4j-log4j12-1.7.30.jar  /opt/src/hbase-2.4.12/lib/client-facing-thirdparty/
cp /opt/src/hadoop-3.3.1/share/hadoop/common/lib/slf4j-api-1.7.30.jar /opt/src/hbase-2.4.12/lib/client-facing-thirdparty/
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐