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”
cd /usr/local/hbase-2.5.5/lib/client-facing-thirdparty/
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 的安装目录)
启动Vim并进入正常模式,按下斜杠(/)键,然后输入要查询的内容(HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"),直接定位到该行。
此时便没有了警告信息!
参考资料
运行Hbase提示SLF4J: Class path contains multiple SLF4J bindings_hbase shell slf4j_6个日的梦想的博客-CSDN博客
原文链接:https://blog.csdn.net/weixin_38735917/article/details/133978253 标签:multiple,jar,SLF4J,slf4j,org,bindings,hbase,impl From: https://www.cnblogs.com/sunny3158/p/18324014