更新时间:2024-09-04 GMT+08:00

ALM-19000 HBase服务不可用

告警解释

告警模块按120秒周期检测HBase服务状态。当HBase服务不可用时产生该告警。

HBase服务恢复时,告警清除。

告警属性

告警ID

告警级别

是否自动清除

19000

紧急

告警参数

参数名称

参数含义

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

对系统的影响

无法进行数据读写和创建表等操作。

可能原因

  • ZooKeeper服务异常。
  • HDFS服务异常。
  • HBase服务异常。
  • 网络异常。
  • 服务配置值修改不正确。

处理步骤

检查ZooKeeper服务状态。

  1. 在FusionInsight Manager的服务列表中,查看ZooKeeper运行状态是否为“良好”。

    • 是,执行5
    • 否,执行2

  2. 在告警列表中,查看是否有“ALM-13000 ZooKeeper服务不可用”告警产生。

    • 是,执行3
    • 否,执行5

  3. 参考“ALM-13000 ZooKeeper服务不可用”的处理步骤处理该故障。
  4. 等待几分钟后检查本告警是否恢复。

    • 是,处理完毕。
    • 否,执行5

检查HDFS服务状态。

  1. 在告警列表中,查看是否有“ALM-14000 HDFS服务不可用”告警产生。

    • 是,执行6
    • 否,执行8

  2. 参考“ALM-14000 HDFS服务不可用”的处理步骤处理该故障。
  3. 等待几分钟后检查本告警是否恢复。

    • 是,处理完毕。
    • 否,执行8

  4. 在FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > HDFS”,查看HDFS“安全模式”是否为“ON”。

    • 是,执行9
    • 否,执行12

  5. root用户登录HDFS客户端。执行cd命令进入客户端安装目录,然后执行source bigdata_env

    如果集群采用安全版本,要进行安全认证。预先向MRS集群管理员获取hdfs用户的密码,执行kinit hdfs命令,按提示输入密码。

  6. 执行以下命令手动退出安全模式。

    hdfs dfsadmin -safemode leave

  7. 等待几分钟后检查本告警是否恢复。

    • 是,处理完毕。
    • 否,执行12

检查HBase服务状态。

  1. 在FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > HBase”。
  2. 查看2个HMaster的状态是否为一“主”一“备”。

    • 是,执行15
    • 否,执行14

  3. 单击“实例”,选择非主状态的HMaster实例,单击“更多 > 重启实例”重启HMaster,再次查看2个HMaster的状态是否为一“主”一“备”。

    • 是,执行15
    • 否,执行21

    HMaster重启期间,无法执行表相关操作和访问HBase WebUI页面,数据读写操作可正常进行不受影响。

  4. 选择“集群 > 待操作集群的名称 > 服务 > HBase > HMaster(主)”,进入HMaster的WebUI页面。

    admin用户默认不具备其他组件的管理权限,如果访问组件原生界面时出现因权限不足而打不开页面或内容显示不全时,可手动创建具备对应组件管理权限的用户进行登录。

  5. 查看Region Servers下是否存在至少一个RegionServer。

    • 是,执行17
    • 否,执行21

  6. 查看“Tables > System Tables”,如图1,查看该标签的“Table Name”列下是否存在“hbase:meta”、“hbase:namespace”和“hbase:acl”。

    • 是,执行18
    • 否,执行19
      图1 HBase系统表

  7. 图1,分别单击“hbase:meta”、“hbase:namespace”和“hbase:acl”超链接,查看所有页面是否能正常打开。如果页面能正常打开,说明表都正常。

    • 是,执行19
    • 否,执行25

      由于普通模式下的HBase默认未开启ACL权限控制,只有在手动开启ACL权限控制后才会存在“hbase:acl”表,需要检查该表,否则不需要检查该表。

  8. 查看HMaster的启动状态。

    图2在“Tasks” 下有“RUNNING”的状态表示HMaster正在启动,“State”列有HMaster处于“RUNNING”状态的时间。如图3中的“COMPLETE”状态表示HMaster启动完成。

    查看HMaster是否持续了很长一段时间处于“RUNNING”状态。

    图2 HMaster正在启动的状态
    图3 HMaster启动完成的状态
    • 是,执行20
    • 否,执行21

  9. 查看HMaster页面是否有hbase:meta长时间处于“Region in Transition”的状态。

    图4 Region处于Region in Transition的状态
    • 是,执行21
    • 否,执行22

  10. 确认在不影响业务的情况下,登录FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > HBase > 更多 > 重启服务”,输入密码,单击“确定”。

    • 是,执行22
    • 否,执行25

    HBase服务重启期间,HBase服务的业务无法使用,包括数据读写、表相关操作、访问HBase WebUI界面等。

  11. 等待几分钟后检查本告警是否恢复。

    • 是,处理完毕。
    • 否,执行25

检查HBase相关配置修改是否正确。

  1. 在FusionInsight Manager界面,单击“审计”,在审计页面单击“高级搜索”,单击“操作类型”右侧的,选择“保存配置 > 确定”,再单击“搜索”。
  2. 查看搜索结果中“服务”列为与HBase相关的服务,例如ZooKeeper、HDFS、HBase等,历史修改的配置是否可能影响HBase服务状态,表1为部分可能影响HBase服务状态的配置:

    表1 影响HBase服务状态的配置

    参数名称

    可能影响

    GC_OPTS

    内存配置可能存在不合理,需要排查实例进程健康情况。

    hbase.rpc.protection

    该配置值修改后,未离线重启整个HBase服务,将导致服务内连接认证失败,服务异常。

    hbase.regionserver.metahandler.count

    集群Region过多时,该配置过小可能导致Region长时间RIT无法上线。

    hbase.regionserver.thread.compaction.large

    该配置过大时可能导致节点CPU使用率过高。

    hbase.regionserver.thread.compaction.small

    该配置过大时可能导致节点CPU使用率过高。

    hbase.coprocessor.master.classes

    配置中使用了自定义协处理器时,逻辑错误将可能导致服务不可用。

    hbase.coprocessor.region.classes

    配置中使用了自定义协处理器时,逻辑错误将可能导致服务不可用。

    hbase.coprocessor.regionserver.classes

    配置中使用了自定义协处理器时,逻辑错误将可能导致服务不可用。

    zookeeper.session.timeout

    该配置过小时,HBase连接ZooKeeper超时过快,可能导致HMaster实例和RegionServer反复重启。

检查HMaster和依赖组件之间的网络连接。

  1. 在FusionInsight Manager界面,选择“集群 > 待操作集群的名称 > 服务 > HBase”。
  2. 单击“实例”,显示HMaster实例列表,记录“HMaster(主)”行的“管理IP”。
  3. omm用户通过26获取的IP地址登录主HMaster节点。
  4. 执行ping命令,查看主HMaster节点和依赖组件所在主机的网络连接是否正常。(依赖组件包括ZooKeeper、HDFS和Yarn等,获取依赖组件所在主机的IP地址的方式和获取主HMaster的IP地址的方式相同。)

    • 是,执行31
    • 否,执行29

  5. 联系网络管理员恢复网络。
  6. 在告警列表中,查看“HBase服务不可用”告警是否清除。

    • 是,处理完毕。
    • 否,执行31

收集故障信息。

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选待操作集群的如下节点信息。

    • ZooKeeper
    • HDFS
    • HBase

  3. 单击右上角的设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后10分钟,单击“下载”。
  4. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

无。