Hadoop(5-1) HBase 提示SLF4J: Class path contains multiple SLF4J bindings.

问题描述

在使用hbase version命令时,出现下列的警告信息 。

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hadoop-3.3.6/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hbase-2.5.5/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Reload4jLoggerFactory]
 

SLF4J: 类路径包含多个SLF4J绑定。
SLF4J: 在 [jar:file:/usr/local/hadoop-3.3.6/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class] 中找到绑定。
SLF4J: 在 [jar:file:/usr/local/hbase-2.5.5/lib/client-facing-thirdparty/log4j-slf4j-impl-2.17.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] 中找到绑定。
SLF4J: 请参阅 http://www.slf4j.org/codes.html#multiple_bindings 了解说明。
SLF4J: 实际的绑定类型是 [org.slf4j.impl.Reload4jLoggerFactory]。

SLF4J警告消息表示类路径中存在多个SLF4J绑定。警告提供了检测到的绑定位置,并告知你只能同时使用一个绑定。

要解决此问题,需要选择一个绑定并将其他绑定从类路径中移除。在上述的情况下,实际使用的绑定类型是 org.slf4j.impl.Reload4jLoggerFactory

报错原因

在实际启用HBase的时候,因为Hadoop中的jar包和HBase中的包版本不一致,就会出现对应的warnning信息,如下图所示,一个在hbase的安装路径下另一个是在hadoop的安装路径下。

解决方法

方法1

把hbase安装路径下的冲突jar包使用mv命令修改它的名称即可, 可以改为“log4j-slf4j-impl-2.17.2.jar-copy”

Hadoop(5-1) HBase 提示SLF4J: Class path contains multiple SLF4J bindings._第1张图片

cd /usr/local/hbase-2.5.5/lib/client-facing-thirdparty/

Hadoop(5-1) HBase 提示SLF4J: Class path contains multiple SLF4J bindings._第2张图片

mv log4j-slf4j-impl-2.17.2.jar log4j-slf4j-impl-2.17.2.jar-copy

方法2

$HBASE_HOME/conf/hbase-env.sh 中,export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true" 这一句的注释去掉即可。($HBASE_HOME为HBase 的安装目录

Hadoop(5-1) HBase 提示SLF4J: Class path contains multiple SLF4J bindings._第3张图片

启动Vim并进入正常模式,按下斜杠(/)键,然后输入要查询的内容(HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"),直接定位到该行。

Hadoop(5-1) HBase 提示SLF4J: Class path contains multiple SLF4J bindings._第4张图片

 此时便没有了警告信息!

 参考资料

运行Hbase提示SLF4J: Class path contains multiple SLF4J bindings_hbase shell slf4j_6个日的梦想的博客-CSDN博客

启动HBase时提示SLF4J: Class path contains multiple SLF4J bindings的解决方法_"hbase启动hbase shell运行命令slf4j: failed to load class-CSDN博客

你可能感兴趣的:(Hadoop,hadoop,大数据,分布式)