CDH中在命令行执行hbase shell时候报错如下:
[root@test-dev-cdh-1 lib]# hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hbase/lib/phoenix-5.0.0-HBase-2.0-client.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hbase/lib/phoenix-5.0.0-HBase-2.0-thin-client.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hbase/lib/phoenix-5.0.0-HBase-2.0-pig.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/jars/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. NameError: cannot link Java class org.apache.hadoop.hbase.HColumnDescriptor (java.lang.NoSuchMethodError: com.ctc.wstx.stax.WstxInputFactory.createSR(Lcom/ctc/wstx/api/ReaderConfig;Lcom/ctc/wstx/io/SystemId;Lcom/ctc/wstx/io/InputBootstrapper;ZZ)Lorg/apache/phoenix/shaded/org/codehaus/stax2/XMLStreamReader2;) method_missing at org/jruby/javasupport/JavaPackage.java:259 <module:HBaseConstants> at /opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hbase/lib/ruby/hbase_constants.rb:42 <main> at /opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hbase/lib/ruby/hbase_constants.rb:34 require at org/jruby/RubyKernel.java:956 (root) at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1 <main> at /opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hbase/bin/../bin/hirb.rb:131
1:Hbase启动hbase shell运行命令报Class path contains multiple SLF4J bindings.错误,是因为jar包冲突了,所以对于和hadoop的jar包冲突的,可以将其他jar包删除,如果你不确定是否删除正确,可以将其他的jar包复制备份或者修改名称,确保操作以后失败了,还可以找回。
[root@test-dev-cdh-1 lib]# ls phoenix-5.0.0-HBase-2.0-client.jar phoenix-5.0.0-HBase-2.0-client.jar [root@test-dev-cdh-1 lib]# mv phoenix-5.0.0-HBase-2.0-client.jar phoenix-5.0.0-HBase-2.0-client.jar.back [root@test-dev-cdh-1 lib]# ls phoenix-5.0.0-HBase-2.0-thin-client.jar phoenix-5.0.0-HBase-2.0-thin-client.jar [root@test-dev-cdh-1 lib]# mv phoenix-5.0.0-HBase-2.0-thin-client.jar phoenix-5.0.0-HBase-2.0-thin-client.jar.back [root@test-dev-cdh-1 lib]# ls phoenix-5.0.0-HBase-2.0-pig.jar phoenix-5.0.0-HBase-2.0-pig.jar [root@test-dev-cdh-1 lib]# mv phoenix-5.0.0-HBase-2.0-pig.jar phoenix-5.0.0-HBase-2.0-pig.jar.back [root@test-dev-cdh-1 lib]# [root@test-dev-cdh-1 lib]#
2、备份完了报冲突的jar包之后,重新执行hbase shell即可。
[root@test-dev-cdh-1 lib]# hbase shell HBase Shell Use "help" to get list of supported commands. Use "exit" to quit this interactive shell. For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell Version 2.1.0-cdh6.3.0, rUnknown, Thu Jul 18 10:08:02 PDT 2019 Took 0.0011 seconds hbase(main):001:0> exists 'user' Table user does not exist Took 3.3419 seconds => false hbase(main):002:0>