【总结】hbase master重启恢复失败问题修复

问题现象

最近hbase master 莫名其妙宕机了,查看最后输出日志,也没有发现有效信息。

于是想着先重启一把,在hbase master 选主成active状态的过程中,发现重启多次都很漫长,且最终因重启时间过长,被hbase-daemon.sh 强杀掉。

从hbase-master.out 可查看到hbase master 被强杀,如下图:

以前也出现过类似情况,当时解决的办法是加大hbase master jvm 内存。

但最近再次宕机,一直加大jvm内存也不现实。只能想办法,从根本上解决。

原因分析

再次查看hbase master log,发现hbase 在恢复过程中,先是一直不断刷如下日志:

INFOorg.apache.hadoop.hbase.util.FSHDFSUtils: Recover lease on dfs filehdfs://nameservice1/hbase/MasterProcWALs/pv-00000000000000011601.log

然后开始不断刷gc回收暂停时间过长

2024-04-24 10:01:47,315 WARN master/ark-73:16000 util.Sleeper: We slept 15775ms instead of 3000ms, this is likely due to a long garbage collecting pause and it's usually bad, see http://hbase.apache.org/book.html#trouble.rs.runtime.zkexpired

再次查看gc 日志,gc.log-202404240937 发现如下日志:

2024-04-24T10:04:47.890+0800: 1630.478: Full GC (Allocation Failure) 2024-04-24T10:04:47.890+0800: 1630.478: \[CMS: 5183936K-\>5183935K(5183936K), 13.3839186 secs 6180735K->6180727K(6180736K), Metaspace: 52023K-\>52023K(1095680K), 13.3840933 secs] Times: user=13.39 sys=0.00, real=13.39 secs

2024-04-24T10:05:01.275+0800: 1643.863: [Full GC (Allocation Failure) 2024-04-24T10:05:01.276+0800: 1643.863: [CMS

种种迹象表明,hbase已经因为内存爆了,导致垃圾回收也无法释放内存。

查阅了一番资料,最终定位到是MasterProcWals pv日志过多,在重启HBase Master 的过程中,HBase Master进入活动状态需要读取并实例化所有正在运行的程序当前记录在/apps/hbase/data/MasterProcWALs/目录下对应的文件。此文件夹太大,HBase Master将在完全变为活动状态之前超时并崩溃。

解决方法

查阅了相关资料,MasterProcWALs 目录下的文件是可以删除的,在删除之前,先备份。

于是执行了以下命令:

复制代码
 # 查看MasterProcWALs 目录下文件存储总大小
 hdfs dfs -du -s -h /apps/hbase/data/MasterProcWALs
# 将该文件备份
hdfs dfs -mv /apps/hbase/data/MasterProcWALs /apps/hbase/data/bakMasterProcWALs
# 重新创建空文件夹
hdfs dfs -mkdir /apps/hbase/data/MasterProcWALs

最后重启hbase master,几乎很快hbase master就启动成功,并成功变成active 活跃状态。

至此,成功解决该问题。

参考资料:https://www.yisu.com/jc/564592.html

相关推荐
跨境卫士苏苏15 分钟前
亚马逊卖家接口新增欧盟清关商品标识要求跨境技术团队如何适配
大数据·新媒体运营·市场营销·跨境电商·跨境·营销策略
莫晓燚20 分钟前
阿里云若依项目部署与日志采集---实战
运维·数据库·redis·阿里云·ruoyi
roman_日积跬步-终至千里42 分钟前
数仓方法论(四):跨过程整合——用一致性维度连接不同业务事实
大数据
香蕉大香蕉(06敬畏市场)1 小时前
MySQL 单点详解(08)
java·数据库·mysql·面试·八股
l1t1 小时前
DeepSeek总结的如何在 PostgreSQL 中删除一张 4 TB 的表
数据库·postgresql
ClouGence2 小时前
开源数据库管理工具 CloudDM 发布新版本,支持团队多级审批工单,无需依赖第三方系统
数据库·sql·开源
roman_日积跬步-终至千里2 小时前
数仓方法论(一):需求分析——把经营诉求转化为可验证的数据需求
大数据·数据挖掘·需求分析
李纲明2 小时前
WordPress 报建立数据库连接时出错:先核 wp-config 四元组,再查 MySQL 服务与表修复
运维·数据库·mysql·wordpress·排障·devdiy
智恒百亿3 小时前
一台 5090 八卡服务器怎么分给一个团队用?多模型多任务的显存分配实战
java·大数据·人工智能
yyk333243 小时前
大数据工具介绍
大数据