CentOS 上 HBase 故障恢复流程
一 恢复总览与准备
cp -r /hbase/data /hbase/data_backup_$(date +%F_%T)ruok/stat)、HDFS 正常(hdfs dfsadmin -report)、网络与防火墙策略无误。status 'detailed'、scan 'hbase:meta', {LIMIT => 10}。二 常见故障与恢复操作
| 故障场景 | 快速判定 | 恢复步骤 |
|---|---|---|
| HMaster 故障/切换 | Active HMaster 进程消失、Web UI 不可达、ZK 上无 master 节点 | 1) 确认 ZooKeeper 正常;2) 在备用 Master 上启动:/hbase/bin/hbase-daemon.sh start master;3) 观察日志 /hbase/logs/hbase-*-master-*.log;4) 验证:status 'simple' 与 UI 恢复。 |
| RegionServer 宕机/异常 | RS 进程消失、部分 Region 离线、负载不均 | 1) 确认 ZooKeeper/HDFS 正常;2) 重启问题 RS:/hbase/bin/hbase-daemon.sh start regionserver;3) 查看 RS 日志定位 OOM/磁盘/网络等根因;4) 必要时临时停用负载均衡:balance_switch false,恢复后 balance_switch true。 |
| 数据一致性/Region 不一致 | hbck 报 INCONSISTENCIES/REGION_OVERLAPS;部分表不可用 |
1) 只读检查:/hbase/bin/hbck;2) 尝试自动修复:/hbase/bin/hbck -repair(生产慎用,先备份);3) 细粒度修复(示例):/hbase/bin/hbck -fixAssignments <table>、-fixMeta、-fixHdfsHoles 等;4) 修复后再次 hbck 直至无不一致。 |
| 配置错误导致无法启动 | 启动即退出、配置项缺失或错误 | 1) 核对 hbase-site.xml 关键项:hbase.rootdir、hbase.zookeeper.quorum、hbase.cluster.distributed 等;2) 修正后先 stop-hbase.sh 再 start-hbase.sh;3) 通过日志定位语法/路径/权限问题。 |
| WAL/Region 损坏导致数据丢失 | Region 启动失败且 WAL 或 HFile 异常 | 1) 从 WAL 恢复:在 HBase Shell 对受影响表执行 hbase hbck -repair(会尝试基于 WAL 回放);2) 若表级快照存在,优先快照恢复;3) 若无快照,尝试从 HFile 层面恢复可用数据(谨慎操作)。 |
| HDFS 层面异常(NameNode/DataNode) | HDFS 只读/块丢失、集群不健康 | 1) 先恢复 HDFS(如 hdfs dfsadmin -recoverLease、排查坏块);2) 确认 HDFS 正常后再启动 HBase;3) 必要时回滚到最近可用备份。 |
三 恢复后的验证与善后
./hbase shell 执行 status 'simple' 与 status 'detailed',确认 Region 在线、负载均衡正常。hbase:meta 健康(scan 'hbase:meta', {LIMIT => 10}),抽样扫描关键表:scan 'your_table_name', {LIMIT => 1000}。四 预防与高可用建议
hbase.rootdir、hbase.zookeeper.quorum、hbase.cluster.distributed 等关键项,确保目录与文件权限正确。五 注意事项与风险提示
hbck -repair 前务必做好 完整备份;自动修复可能造成 数据重写/Region 移动,请在维护窗口进行并全程监控。