sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  1796 随笔 :: 22 文章 :: 24 评论 :: 226万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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博客

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

原文链接:https://blog.csdn.net/weixin_38735917/article/details/133978253
posted on   sunny123456  阅读(118)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示