[atguigu@node11 hbase]$ ./bin/start-hbase.sh SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.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.Log4jLoggerFactory] SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.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.Log4jLoggerFactory] zk2: ssh: Could not resolve hostname zk2: Name or service not known zk3: ssh: Could not resolve hostname zk3: Name or service not known zk1: ssh: Could not resolve hostname zk1: Name or service not known running master, logging to /usr/local/hbase/bin/../logs/hbase-atguigu-master-node11.out : running regionserver, logging to /usr/local/hbase/bin/../logs/hbase-atguigu-regionserver-node11.out有什么问题
时间: 2023-07-12 07:57:31 浏览: 192
这个错误提示表明有多个SLF4J绑定,导致启动HBase时出现了异常。这个问题是由于Hadoop和HBase等软件包都有自己的SLF4J依赖,导致多个版本的SLF4J库同时存在,从而引发冲突。
解决方法是在HBase的启动脚本中添加以下命令,清除Hadoop的SLF4J依赖:
```
export HBASE_OPTS="-Dhadoop.metrics.log.level=WARN -Dorg.slf4j.simpleLogger.log.org.apache.hadoop=WARN -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog"
```
另外,错误提示中还显示了无法解析zk1、zk2、zk3这几个主机名。这是因为HBase在启动时需要连接ZooKeeper,但是无法解析这几个主机名。需要确认ZooKeeper的主机名配置是否正确,并且确保当前主机可以正常访问这几个主机。可以尝试使用ping命令测试这几个主机是否可达。
相关问题
[atguigu@node11 hbase]$ ./bin/start-hbase.sh SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.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.Log4jLoggerFactory] mkdir: 无法创建目录"/usr/local/hbase/bin/../logs": 权限不够 running master, logging to /usr/local/hbase/bin/../logs/hbase-atguigu-master-node11.out /usr/local/hbase/bin/hbase-daemon.sh:行195: /usr/local/hbase/bin/../logs/hbase-atguigu-master-node11.out: 没有那个文件或目录 head: 无法打开"/usr/local/hbase/bin/../logs/hbase-atguigu-master-node11.out" 读取数据: 没有那个文件或目录
这个错误信息显示了多个 SLF4J 绑定的问题,以及一个无法创建目录和找不到日志文件的问题。
针对这些问题,可以尝试以下解决方法:
1. 多个 SLF4J 绑定的问题可以忽略,因为实际绑定的是 Log4jLoggerFactory。
2. 创建目录和日志文件的问题,可能是因为没有写入权限导致的。可以尝试使用 root 用户或者具有写入权限的用户来启动 HBase。
另外,你可以进入 HBase 的 bin 目录下,手动创建 logs 目录,以及在 logs 目录下创建 hbase-atguigu-master-node11.out 文件,然后再次尝试启动 HBase。例如:
```
cd /usr/local/hbase/bin
sudo mkdir ../logs
sudo touch ../logs/hbase-atguigu-master-node11.out
sudo chmod -R 777 ../logs
./start-hbase.sh
```
如果问题仍然存在,请提供更多信息,我会尽力帮助你解决。
[atguigu@node11 hbase]$ bin/start-hbase.sh SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.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.Log4jLoggerFactory] running master, logging to /usr/local/hbase/bin/../logs/hbase-atguigu-master-node11.out SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation
这是一个启动HBase的Shell脚本,在启动的过程中出现了SLF4J绑定的问题。具体的错误信息是Class path contains multiple SLF4J bindings,意思是类路径中包含了多个SLF4J绑定。在这个错误信息中,SLF4J发现了两个绑定,一个在/opt/module/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar中,另一个在/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.30.jar中。SLF4J提供了一个链接http://www.slf4j.org/codes.html#multiple_bindings来解释这个问题。最后,该错误信息指出实际的绑定类型是org.slf4j.impl.Log4jLoggerFactory。
阅读全文