HBase故障排查在CentOS中怎么进行
导读:CentOS上HBase故障排查实操手册 一、快速定位流程 明确现象:是服务不可用、读写延迟高、Region无法上线、还是启动失败。 查看进程与端口:用jps确认HMaster/RegionServer是否存在;用**netstat -t...
CentOS上HBase故障排查实操手册
一、快速定位流程
- 明确现象:是服务不可用、读写延迟高、Region无法上线、还是启动失败。
- 查看进程与端口:用jps确认HMaster/RegionServer是否存在;用**netstat -tulpen | grep -E ‘16000|16010|16020|16030|2181’**排查端口占用。
- 查看日志:优先看HMaster/RegionServer日志(常见路径:/var/log/hbase/),关注异常关键词如Connection refused、Session expired、Permission denied、OutOfMemoryError。
- 检查依赖:确认ZooKeeper与HDFS健康(进程、端口、HDFS是否处于安全模式)。
- 基础资源:用top/free/df核查CPU、内存、磁盘空间。
- 配置核对:重点检查hbase-site.xml中的hbase.rootdir、hbase.zookeeper.quorum及分布式开关等。
- Shell与运维命令:用hbase shell执行status 'detailed’观察集群状态;用hbck检查一致性;必要时调整balance_switch。
- 网络与安全:核查**/etc/hosts**解析、firewalld/SELinux策略是否阻断访问。
二、常见故障与修复对照表
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| HMaster/RegionServer起不来 | jps无进程;端口16000/16010/16020/16030被占用;日志报“Could not bind to address” | 释放或更换端口;确认JAVA_HOME与版本兼容;检查hbase-site.xml关键配置;必要时清理临时文件后重启 |
| ZooKeeper连接异常(ConnectionLoss/Session expired) | zkCli.sh连不通;ZK未启动或会话超时 | 启动ZK集群;核对hbase.zookeeper.quorum;适度增大ZK会话超时;检查ZK负载与版本兼容 |
| HDFS相关报错(Permission denied/No valid filesystem/安全模式) | HDFS目录权限错误;NameNode在SafeMode;core-site/hdfs-site指向错误 | 执行hdfs dfs -chown -R hbase:hadoop /hbase;必要时hdfs dfsadmin -safemode leave;校正hbase.rootdir的HDFS地址 |
| Region无法上线/分布不均 | hbck报不一致;修改主机名后meta异常 | 在hbase shell执行scan 'hbase:meta’定位异常行;用hbck -fixAssignments修复分配;必要时调整负载均衡策略 |
| 读写延迟高/抖动 | top/htop见CPU/GC尖峰;线程堆积 | 用jstack分析热点线程;优化memstore/blockcache与handler数;考虑预分区、压缩、合并策略与Bulk load后Major Compaction |
| ServerNotRunningYetException | HMaster未就绪;依赖未起或配置错误 | 按依赖顺序启动(ZK→HDFS→HBase);核对ZK与HDFS连通性;修正配置与端口冲突后重启 |
三、关键命令清单
- 进程与端口
- jps | egrep “HMaster|HRegionServer|QuorumPeerMain”
- ss -lntp | egrep “16000|16010|16020|16030|2181”
- ZooKeeper
- ${ ZK_HOME} /bin/zkServer.sh status
- ${ ZK_HOME} /bin/zkCli.sh -server zk1:2181 ls /hbase
- HDFS
- hdfs dfsadmin -safemode get
- hdfs dfsadmin -safemode leave
- hdfs dfs -ls /hbase
- hdfs dfs -chown -R hbase:hadoop /hbase
- HBase运维
- hbase shell
- status ‘detailed’
- balance_switch on/off
- scan ‘hbase:meta’
- hbase hbck
- hbase hbck -fixAssignments tableName
- hbase shell
- 系统资源
- top/htop、free -m、df -h
- JVM诊断
- jstack /tmp/rs.jstack
四、配置与网络检查要点
- 配置文件
- hbase-site.xml:确保hbase.rootdir指向正确的HDFS路径;hbase.zookeeper.quorum列出全部ZK节点;伪分布式将hbase.cluster.distributed设为true;必要时将hbase.unsafe.stream.capability.enforce设为false以规避启动报错。
- 环境脚本:在hbase-env.sh中设置合适的JAVA_HOME与HBASE_HEAPSIZE,避免OOM。
- 主机与解析
- 核对**/etc/hosts与hostname一致,避免Region因主机名变更导致meta**不一致。
- 防火墙与SELinux(测试环境可临时关闭,生产环境建议按需放通)
- systemctl stop firewalld(测试)
- firewall-cmd --zone=public --add-port=16000/tcp --permanent & & firewall-cmd --reload
- setenforce 0(测试);生产环境在**/etc/selinux/config中改为SELINUX=permissive/disabled**并重启
五、数据一致性与恢复
- 一致性自检与修复
- 使用hbck全面检查;对“Region未部署/分配异常”等问题,先执行hbck -fixAssignments,再复核直至无不一致。
- 备份与回滚
- 利用快照(snapshot)进行时间点恢复;必要时从备份或HFile层面恢复。
- WAL与复制
- 异常宕机后可依赖WAL(Write-Ahead Log)进行恢复;跨集群replication异常时,核查peer状态与WAL积压。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: HBase故障排查在CentOS中怎么进行
本文地址: https://pptw.com/jishu/768408.html
