记录Hbase出现HMaster一直初始化,日志打印hbase:meta,,1.1588230740 is NOT online问题的解决

具体错误

hbase:meta,,1.1588230740 is NOT online; state={1588230740 state=OPEN, ......

使用 hbase 2.5.5 ,hdfs和hbase分离两台服务器。

总过程

1. 问题发现

在使用HBase的程序发出无法进行插入到HBase操作日志后检查HBase状况。发现master节点和region节点都挂了,HBase自动切换到备用master节点。关闭备用master节点,重新启动HBase集群,WEB界面发现上一次启动的节点在Dead Region中不自动清除,且Region Transition卡住了395条,看日志发现master节点一直在抛出is not online on ...,16020,1569380560106异常,确认HBase没有正常运行。

检查日志发现主节点抛出如上错误。

2. 解决过程

2.1 is not online on ...,16020,1569380560106异常

重启观察到Dead Region每次会增加,感觉应该是HMaster初始化中重启导致的状态问题。之前测试环境解决这个问题是清空zookeeper和hdfs的hbase相关信息,但是因为有数据不希望清除,考虑解决该问题。

先去hdfs节点检查hbase文件有没有损坏的情况。

复制代码
hdfs fsck

输出未发现数据块损坏的情况。 搜索后确认为hbase内部问题。搜索得到hdfs的hbase路径下WALs保存regionserver节点的信息,遂考虑清空重启看看能不能解决这个问题。

复制代码
hdfs dfs -mkdir /hbase/WALs20240521

hdfs dfs -mv /hbase/WALs/* /hbase/WALs20240521

运行后问题依旧存在,检查日志后猜测是找不到某个节点的信息导致HMaster节点无法正常初始化。在WALs中新建了一个空白的hbase:meta找不到的1,16020,1569380560106文件夹,再次重启后HMaster恢复正常,多余的Dead Region在等待三四分钟后自动清除,HBase恢复正常运行。

2.2 出现了数据缺失的情况

在HBase恢复正常后,在HBase Web UI中的HBCK REPORT发现大量的Incontinent Regions和Unknown Servers信息,怀疑是数据有问题,在使用自己的业务程序测试后发现有部分数据的请求在master节点会抛出类似于 表名,rowkey,encode在region2.16000,encode这里不存在,region2,16000,encode不在线。

初期怀疑是数据损坏了,希望通过HBCK进行修复region的hole问题,因为是2代所以从GIT上拉相关工具,官网上获取的。可能在运行 hbase hbck -j xxx.jar 后会抛出没找到文件系统 hdfs 的错误,可以加上 --internal-classpath来解决这个问题。我是因为hdfs 和 hbase 不在同一个服务器上,也可以通过添加环境变量HADOOP_HOME来解决这个错误。

首次使用fixMeta来尝试修补表中的holes解决文件损坏问题。

复制代码
hbase hbck -j xxxx.jar fixMeta

运行后观察master节点的日志,发现返回了hbase:meta中发现的holes为0,排除了数据损坏的情况。焦点回到unknown servers上。

复制代码
hbase hbck -j xxx.jar scheduleRecoveries [encode]

恢复崩溃的 RegionServer 上的所有 region。

3. 过程中用到的指令

复制代码
hbase hbck -j xxxx.jar -o assigns [encode] # 分配Region in transition中卡住的任务
hbase hbck -j xxxx.jar bypass [pid]   # 将producer中的强行释放,在任务卡住的时候可以用
hbase hbck -j xxxx.jar fixMeta    # 修复hbase:meta的问题,需要程序正常运行

结语

仅为在网络上找到的一些方法和自己踩的坑,肯定有错误的地方,希望可以指正,谢谢。具体命令可以在HBCK2项目中的README.md中详解。

相关推荐
奇牙coding15 分钟前
GPT-5.5 报 401 invalid_api_key 怎么办?换密钥前按 4 层排查请求头、项目权限和端点
数据库·gpt·ios·ai
IvorySQL17 分钟前
PostgreSQL 日报| WAL summarizer 断言失败(10 月 26 日)
数据库·postgresql·区块链
这个DBA有点耶1 小时前
2026年国产数据库“实际用户增长最快”核验指南:口径优先级、可查数据与选型动作清单
数据库·mysql·架构
程序员塔塔喵2 小时前
【MySQL篇|第三篇】脏读,幻读,不可重复读
数据库·mysql·不可重复读·幻读·脏读
数据库小学妹2 小时前
OLAP数据库怎么选、怎么优化?路线、提速与边界
运维·数据库·后端
织码weavecodes2 小时前
新闻资讯模块设计:内容发布、阅读计数与附件鉴权
java·服务器·数据库
小羊没烦恼!2 小时前
分布式事务 | 使用DTM 的Saga 模式
java·linux·运维·数据库·wpf
这个DBA有点耶2 小时前
备份成功≠数据可恢复:静默损坏会让物理备份把坏页一起带走
数据库·mysql·代码规范
数据库小学妹2 小时前
MySQL MDL锁等待排查:DDL卡住与长事务定位
数据库·后端·mysql
Thneonl2 小时前
ClickHouse UPDATE:一秒返回,三小时才生效
数据库·后端