1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

hbase无法启动问题处理

处理hbase无法启动问题

作为IT那活儿推荐网的小编小本本,今天给大家分享处理hbase无法启动问题的经验。某日我们接到客户反馈测试环境中的hbase服务无法启动,经过定位发现是hbaseregions负载过大崩溃,进一步导致zk实例数据异常最终无法正常启动完成,让我们来看看具体如何处理。

hbase无法启动问题处理

故障处理过程

以下是我们处理hbase无法启动的具体步骤及操作解析:

  1. 登录CM管理界面,发现登录正常,但是集群处于关闭状态。
  2. 检查集群节点磁盘状态,发现状态正常,未有磁盘满的节点情况出现。
  3. 尝试对zookeeper服务进行启动,发现无法启动,报错拒接连接。
  4. 检查zookeeper实例,发现zk的实例被删除了一个,进一步检查zk的数据目录,发现有一个log文件大小为0,怀疑此最新的异常log导致zk无法启动。
  5. 对zk的节点数进行恢复,并将异常的log文件log.d161f9进行删除,同时将次新的一个数据文件和snapshot文件scp到新加入的zk节点数据目录。
  6. 再次对处理后的zookeeper服务进行启动,已能够成功启动服务。
  7. zookeeper启动完成后,使用zkCli.sh命令行进入zk目录,ls查看之前的文件,/hbase所使用的目录均正常,数据未丢失。
  8. 恢复hdfs服务,使用CM界面对hdfs服务进行启动,启动成功。
  9. 恢复hbase服务,对hbase服务进行启动,启动成功。
  10. 使用hbaseshell命令行进入对hbase服务进行测试,发现异常报错regionsnotonline出现。
  11. 检查hbase-master日志,发现存在大量的reigonsonline信息。
  12. 登录CM界面和hbase-masterweb界面查看,发现hbase存在大量的regions还在transition状态,而且超过了水位线。
  13. 等待所有的reigons逐渐上线完成。
  14. 上线完成后,hbase服务恢复正常,查询已能够正常返回结果,但集群共计10874个regions,共计2个节点,一个节点超过了5000+regions,比正常水平的单节点维持800-1000regions的建议值高了5倍以上。
  15. 清理过期测试数据的方案,释放集群的regions数量,对2021年以前的所有表进行删除。
  16. 检查regions总数,集群总regions数量已经2264个了,平均单节点1100个左右,基本处于正常水平。

故障根因分析和优化建议

此次故障的根本原因为在进行相关写入测试时,有大量的预分区和数据写入,没有及时进行清理,时间久了导致hbase因负载过高而崩溃。为避免类似问题的再次发生,我们提出以下优化建议:

  1. 对hbase历史的数据进行清理,释放集群的regions数量,维持在较健康的水平。
  2. 测试人员在后续测试后,及时进行hbase表及数据的清理,避免多人大量数据写入导致hbase负载过高而崩溃。
  3. 建议测试环境的重要权限进行人员管控,避免误删除zookeeper实例或者其他实例的问题。

最后再次强调,处理hbase问题时应该综合考虑zookeeper和hdfs组件,避免单只看hbase组件导致问题无法解决。同时建议部署hbase集群时,将zookeeper组件作为hdfs和hbase组件依赖使用,不要用于其他业务数据的存储使用,避免zk的问题影响到整个hdfs和hbase集群。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6254.html