修复分配,再执行hbase hbck复核一致性。
连接ZooKeeper异常(如Session expired / ConnectionLoss)
- 可能原因:ZooKeeper会话超时、连接数或负载过高、版本不兼容、网络分区。
- 处理要点:
- 检查ZooKeeper状态与连接数,适当增大会话超时;核查hbase.zookeeper.quorum与客户端端口配置。
- 确认HBase与ZooKeeper版本兼容;排查网络与防火墙策略。
权限与访问控制错误(如AccessDenied)
- 可能原因:Ranger/Sentry等鉴权策略限制、namespace使用不当、运行用户权限不足。
- 处理要点:
- 使用具备权限的用户执行;在Ranger等组件中为相应用户/组授予create/select等操作权限。
- 按namespace规范创建表(如create ‘ns:table’, ‘cf’)。
性能下降与读写延迟升高
- 可能原因:热点Region、BlockCache/MemStore配置不当、HFile过多、压缩未启用、JVM GC过长、硬件瓶颈。
- 处理要点:
- 设计合理RowKey并预分区;启用Snappy等压缩;调整BlockCache/MemStore占比与hbase.hregion.max.filesize。
- 客户端使用批量Get/Scan缓存;必要时增加RegionServer或升级至SSD。
三 配置与兼容性要点
- 关键配置示例(hbase-site.xml)
- 分布式开关:
- hbase.cluster.distributedtrue
- 存储根路径:
- hbase.rootdirhdfs://:9000/hbase
- ZooKeeper地址:
- hbase.zookeeper.quorumzk1,zk2,zk3
- 客户端端口(如与ZooKeeper不同):
- hbase.zookeeper.property.clientPort2181
- 版本兼容建议
- CentOS 7/6均可部署多版本HBase;常用JDK 8。
- 组合示例:HBase 1.1.2 + Hadoop 2.7.x;HBase 2.2.2 + Hadoop 3.1.3。
- 环境与权限
- 正确设置JAVA_HOME与HBASE_HOME;确保HBase运行用户对数据目录/HDFS目录具备读写权限。
四 常用命令与工具清单
- 进程与端口:jps;netstat -anp | grep -E ‘16000|16010|2181’
- 日志与状态:tail -f /var/log/hbase/hbase--master-.log;status ‘detailed’
- 一致性与健康:hbase hbck、hbase hbck -fixAssignments
、hbase canary
- ZooKeeper连通性:echo stat | nc <zk_host> 2181 或 zkCli.sh 连接检查