CentOS 上 HBase 故障排查实用技巧
一 快速定位流程
二 常见故障与处理清单
| 症状 | 快速检查 | 处理要点 |
|---|---|---|
| HMaster/RegionServer 起不来 | 进程缺失、端口占用、JVM 启动失败 | 释放被占用的 16000/16020/2181;核对 JAVA_HOME 与 GC_OPTS;查看 out/log 中的 Unrecognized VM option 等启动参数错误并修正 |
| Region 长时间 RIT 或无法上线 | hbck 报告不一致、meta 异常 | 先 hbck -fixAssignments 修复分配;必要时按提示修复 hbase:meta 异常条目;再重启相关服务 |
| ZooKeeper 连接异常(ConnectionLoss/Session expired) | ZK 集群状态、会话超时 | 用 zkCli.sh 检查 ZK 状态;适当增大 ZooKeeper 会话超时;排查网络与防火墙 |
| 时钟漂移导致拒绝启动 | 节点间时间差 | 校准 NTP,确保与 Master 时差小于 30s(参数 hbase.regionserver.maxclockskew,默认 30000ms) |
| /etc/hosts 配置错误 | 同一 IP 多主机名 | 修正 /etc/hosts,保证 IP ↔ 主机名 一一对应 |
| 端口冲突(如 16020 被 DFSZKFailoverController 占用) | lsof -i:16020 查占用 | 结束冲突进程或调整端口范围/配置,重启 RegionServer |
| WAL 分裂失败导致反复重启 | 大 Block 导致 seek 异常 | 检查 /hbase/WALs 健康;必要时备份后重建目录并恢复 |
| HDFS 空间不足或目录缺失 | hdfs dfs -df -h /hbase;HMaster 报路径缺失 | 清理或扩容 HDFS;若 acl 表路径丢失,按流程在 ZK 中清理相关节点后重启 |
三 关键命令与操作示例
四 性能问题定位与优化要点
五 预防与运维建议