ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

解决hbase配置过程 shell命令不可用问题

解决hbase配置过程 shell命令不可用问题

输入shell命令不可用

日志反复出现的FanOutOneBlockAsyncDFSOutputHelperIllegalArgumentException是一个经典的 HBase 2.4.x 与 Hadoop 3.3.x 的兼容性问题。

这是因为 HBase 在使用异步刷新(AsyncFS)写 WAL 日志时,与 Hadoop 3.x 内部的 Protobuf 处理方式发生了冲突。这就是为什么输入jps HMaster 虽在,但节点永远处于“正在初始化”且无法正常提供服务的原因。

解决步骤:

由于直接执行停止hbase命令会卡顿省略号很久

/export/server/hbase/bin/stop-hbase.sh

所以用杀死进程来清空之前错误的配置

1. 强制清理残留进程

既然stop-hbase.sh无效,请先彻底清理环境:

# 杀掉 node1 上的所有 HBase 相关进程 ps -ef | grep hbase | grep -v grep | awk '{print $2}' | xargs kill -9

如果在其他节点(node2, node3)也有进程,请同步清理。

2. 修改hbase-site.xml配置(关键!!!!)

需要关闭导致报错的“异步 WAL 写入”功能,让 HBase 使用传统的同步方式。

编辑文件:vi /export/server/hbase/conf/hbase-site.xml

<configuration>标签内添加以下属性:

<property> <name>hbase.wal.provider</name> <value>filesystem</value> </property>
  • 同步配置:如果有多个节点,请确保所有节点的hbase-site.xml都做了这个修改。

3.zkCli.sh也需要清空配置
/export/server/zookeeper/bin/zkCli.sh
  • 进入后执行清理(防止旧的 Master 锁干扰):

    deleteall /hbase quit
4. 重新启动并验证

按顺序启动:

  1. 启动 HDFS 和 ZooKeeper(如果之前关了的话)。

  2. 启动 HBase:

    start-hbase.sh
  3. 验证进程:在 node1 执行jps,确保HMasterHRegionServer同时存在。

  4. 验证 Shell:等待约 20 秒,进入hbase shell再次执行status。

  5. 截图成功

返回列表