| HMaster/HRegionServer起不来 |
配置文件hbase-site.xml是否正确;端口冲突(如60000/2181);Java版本与依赖兼容;HDFS可用;日志报错 |
修正配置(如hbase.cluster.distributed、hbase.rootdir、hbase.zookeeper.quorum);释放或更换端口;统一Java版本;恢复HDFS;按日志报错逐项修复 |
| 连接ZooKeeper异常(Session expired/ConnectionLoss) |
ZooKeeper状态与负载;会话超时设置;网络连通;版本兼容 |
增大会话超时;排查ZooKeeper连接数与负载;核对hbase.zookeeper.quorum与端口;必要时调整超时参数 |
| Region无法上线/元数据异常 |
hbase:meta一致性;主机名变更;分配状态 |
在HBase Shell执行**scan 'hbase:meta’定位异常行;必要时用hbck -fixAssignments **修复分配;重启相关服务
| 读写延迟高/性能下降 |
CPU/内存/IO/磁盘;WAL/Flush/Compaction压力;表设计与参数 |
调整memstore/flush/compaction相关阈值;优化RowKey与列族数量;开启压缩(如snappy);合理设置批量写/读与扫描缓存 |
| 数据不一致/Region分布异常 |
hbck不一致项;Region分配 |
运行hbck定位问题;使用**-fixAssignments**等修复分配;再次校验一致性 |
三 关键命令与操作清单
- 进程与端口
- 进程:jps
- 端口:netstat -anp | grep 60000、netstat -anp | grep 2181
- 日志与配置
- 日志:/var/log/hbase/ 下的 master/regionserver 日志
- 配置:hbase-site.xml(如hbase.cluster.distributed、hbase.rootdir、hbase.zookeeper.quorum)
- HBase Shell
- 集群状态:status ‘detailed’
- 均衡开关:balance_switch ‘on’
- 元数据核查:scan ‘hbase:meta’
- 健康检查与修复
- 一致性:hbase hbck、hbck -fixAssignments
- 可用性探测:hbase canary
- HFile分析:hbase hfile
- 系统资源与网络
- 资源:top/free/df
- 网络:ping/traceroute/netstat
- JVM诊断
四 性能类问题的典型成因与优化
- 成因特征
- WAL被关闭导致风险增大且易引发异常;StoreFiles过多引发频繁Compaction,读写受阻;JVM GC暂停明显;Region热点与RowKey设计不当导致单点压力。
- 优化要点
- 合理设置memstore/flush/compaction阈值,避免写阻塞与文件数爆炸。
- 开启压缩(snappy/zstd),减少IO。
- 设计高散列、定长的RowKey,必要时预分区;控制列族数量(建议≤2–3)。
- 使用批量写/批量Get、增大扫描缓存,减少RPC次数。
- 适度关闭自动刷新(auto flush)并增大写缓冲区,提升吞吐。
五 排障建议与风险控制
- 操作前备份重要配置与元数据,变更遵循灰度/滚动原则,避免同时重启大量节点。
- 谨慎执行修复类命令(如hbck -fixAssignments),先备份并在低峰期操作。
- 若问题持续,收集日志、配置、jstack、HBase Shell状态输出等信息,便于进一步分析或向社区求助。
|