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

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐