Debian 上 HBase 故障排查实战手册
一 快速定位流程
jps | grep -E "HMaster|HRegionServer"ss -ltnp | egrep '16000|16010|2181'echo stat | nc <zk_host> 2181 或 zkCli.sh -server <zk_host>:2181 ls /hbasehdfs dfsadmin -report;若处于安全模式:hdfs dfsadmin -safemode leavetail -n 200 ${HBASE_HOME}/logs/hbase-*-master-*.log、tail -n 200 ${HBASE_HOME}/logs/hbase-*-regionserver-*.loghbase shell 执行 status 'detailed',确认 RegionServer 在线与负载分布二 常见故障与修复要点
hbase.rootdir 指向正确的 HDFS 路径;HDFS 上 /hbase 目录属主为 hbase-Xms/-Xmx),避免 OOM 导致进程退出HBASE_HEAPSIZE 与 MemStore 相关阈值hbase hbck -details <表名> 或全集群 hbase hbckhbase hbck -fixMeta → hbase hbck -fixAssignments;严重不一致再考虑表级重建hbase.hregion.memstore.flush.size、hbase.regionserver.global.memstore.size 未超限;必要时 flush '<表名>'hbase.rpc.timeout 等超时参数与集群一致三 关键命令与操作清单
jps | grep -E "HMaster|HRegionServer|QuorumPeerMain"ss -ltnp | egrep '16000|16010|2181'zkCli.sh -server <zk_host>:2181 ls /hbasehdfs dfsadmin -report;hdfs dfsadmin -safemode leaveecho "status 'detailed'" | hbase shellhbase hbck -details <表名>;hbase hbck -fixMeta;hbase hbck -fixAssignmentsassign '<RegionID>'flush '<表名>'tail -n 200 ${HBASE_HOME}/logs/hbase-*-master-*.logtail -n 200 ${HBASE_HOME}/logs/hbase-*-regionserver-*.logexport HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Xms4G -Xmx4G";export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Xms8G -Xmx8G"(按机器内存与负载合理设置)<property>
<name>hbase.rpc.timeout</name>
<value>60000</value>
</property>
四 Debian 环境专项检查
java -versionJAVA_HOME 与 HBASE_HOME,并加入 PATH/etc/security/limits.conf 为 hbase 用户提升 nofile(如 32768),并重启会话/服务${HBASE_HOME}/data、${HBASE_HOME}/logs 与 HDFS 上 /hbase 目录属主为 hbasefirewall-cmd --zone=public --add-port=16000/tcp --permanent && firewall-cmd --reload五 高风险操作与回退建议
hdfs dfs -rm -r /hbase/* 或执行 hbase clean --cleanAll,仅在确认数据可丢弃或已备份时操作hbase hbck -repair,应先在测试环境验证,或按“元数据修复 → 分配修复 → 再评估物理修复”的顺序推进