文档首页/ MapReduce服务 MRS/ 用户指南(安卡拉区域)/ 告警参考/ ALM-19025 HBase存在损坏的StoreFile文件
更新时间:2024-11-29 GMT+08:00

ALM-19025 HBase存在损坏的StoreFile文件

告警解释

系统每120秒周期性检测每个HBase服务在HDFS上的“hdfs://hacluster/hbase/autocorrupt”和“hdfs://hacluster/hbase/MasterData/autocorrupt”目录,当检测到目录下存在文件时产生该告警。

当“/hbase/autocorrupt”和“/hbase/MasterData/autocorrupt”目录不存在或为空时,告警消除。

“hdfs://hacluster”为HBase使用的文件系统名,“/hbase”为HBase在文件系统上的根目录,可登录FusionInsight Manager,选择“集群 > 服务 > HBase > 配置”,在搜索框中分别搜索“fs.defaultFS”和“hbase.data.rootdir”参数查看。

告警属性

告警ID

告警级别

告警类型

业务类型

是否可自动清除

19025

重要

处理错误告警

HBase

告警参数

类别

参数名称

参数含义

定位信息

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

对系统的影响

HBase存在损坏的StoreFile文件,可能会导致位于该文件上的数据丢失,业务查询数据可能出现不一致。

可能原因

StoreFile文件内容损坏。

处理步骤

  1. 在FusionInsight Manager首页,选择“运维 > 告警 > 告警”,查看“告警ID”为“19025”的告警的“定位信息”中上报该告警的服务名。
  2. 以客户端安装用户登录安装了HDFS和HBase客户端的节点,并执行以下命令:

    cd 客户端安装目录

    source bigdata_env

    kinit 组件业务用户(若集群未启用Kerberos认证(普通模式),请跳过该操作)

  3. 查看损坏的StoreFile文件。

    • 执行以下命令检查HDFS的“/hbase/autocorrupt”目录是否为空,不为空则执行4

      hdfs dfs -ls -R hdfs://hacluster/hbase/autocorrupt

    • 执行以下命令检查HDFS的“/hbase/MasterData/autocorrupt”目录是否为空,不为空则执行9

      hdfs dfs -ls -R hdfs://hacluster/hbase/MasterData/autocorrupt

  4. 对“hdfs://hacluster/hbase/autocorrupt”目录下的StoreFile文件执行以下命令进行修复:

    hdfs debug recoverLease -path hdfs://hacluster/hbase/autocorrupt/NameSpace名/表名/Region名/列簇名/StoreFile文件名

  5. 查看损坏的StoreFile文件是否修复成功,执行修复命令后返回以下信息表示修复成功:

    recoverLease SUCCEEDED on hdfs://hacluster/hbase/autocorrupt/default/h1/865665fe32db62dadada68b644359809/cf1/95f210f931ad44c99e4028470be7d292

    是,执行6

    否,执行9

  6. 执行以下命令将文件移回“hdfs://hacluster/hbase/data”目录。

    hdfs dfs -mv hdfs://hacluster/hbase/autocorrupt/NameSpace名/表名/Region名/列簇名/StoreFile文件名 hdfs://hacluster/hbase/data/NameSpace名/表名/Region名/列簇名/StoreFile文件名

  7. hbase shell执行以下命令重新上线Region。

    hbase shell

    unassign 'Region名'

    assign 'Region名'

  8. 等待几分钟后,在告警列表中查看该告警是否清除。

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

收集故障信息

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选待操作集群的“HBase”。
  3. 单击右上角的时间编辑按钮,设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后10分钟,单击“下载”。
  4. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

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

参考信息

不涉及。