阅读量:2
CentOS 上 HBase 故障恢复流程
一 恢复总览与准备
- 明确故障现象:如集群不可用、读写异常、节点宕机、启动失败等,先记录影响范围与时间点。
- 备份当前状态:在进行任何修复前,先备份 HBase 数据目录与配置文件,避免二次损坏。
示例:cp -r /hbase/data /hbase/data_backup_$(date +%F_%T) - 检查依赖服务:确认 ZooKeeper 集群健康(如四字命令
ruok/stat)、HDFS 正常(hdfs dfsadmin -report)、网络与防火墙策略无误。 - 收集日志与诊断:查看 HBase 日志(常见路径:/hbase/logs/ 或 /var/log/hbase/),并用 HBase Shell 做快速体检:
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 |