更新时间:2023-03-17 GMT+08:00

ALM-14020 HDFS目录条目数量超过阈值

告警解释

系统每一个小时获取指定目录下直接子文件/目录的数量,判断其是否达到HDFS目录最大子文件/目录个数的百分比阈值(默认为“90%”),如果超过该阈值,则触发告警。

当发出告警的目录的子目录/文件数所占百分比低于阈值后,该告警将自动恢复。当监控开关关闭,所有目录对应的该告警都将自动恢复。当从监控列表中移除指定目录时,该目录对应的告警也会自动恢复。

  • HDFS目录的子文件/目录最大个数由参数“dfs.namenode.fs-limits.max-directory-items”指定,默认值为“1048576”。如果一个目录的子文件/目录数量超过该值,则无法再在该目录下创建新的子文件/目录。
  • 要监控的目录列表由参数“dfs.namenode.directory-items.monitor”指定,默认值为“/tmp,/SparkJobHistory,/mr-history”。
  • 监控开关由参数“dfs.namenode.directory-items.monitor.enabled”指定,默认值为“true”,即该检测默认开启。

告警属性

告警ID

告警级别

是否自动清除

14020

重要

告警参数

参数名称

参数含义

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

NameService名

产生告警的NameService名称。

目录名

产生告警的目录名称。

Trigger Condition

系统当前指标取值满足自定义的告警设置条件。

对系统的影响

当监控目录下的条目数超过系统阈值的90%触发该告警,但不影响对该目录继续增加条目。一旦超过系统最大阈值,继续增加条目会失败。

可能原因

监控目录的条目数超过系统阈值的90%。

处理步骤

检查系统中是否有不需要的文件。

  1. root用户登录HDFS客户端。执行cd命令进入客户端安装目录,然后执行source bigdata_env命令设置环境变量。

    如果集群采用安全版本,要进行安全认证。

    执行kinit hdfs命令,按提示输入密码(向管理员获取密码)。

  2. 执行如下命令,检查发出告警的目录下的文件或目录是否是可以删除的无用文件。

    hdfs dfs -ls 产生告警的目录路径

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

  3. 执行如下命令。删除无用的文件。

    hdfs dfs -rm -r -f 文件或目录路径

    删除文件为高危操作,在执行操作前请务必确认对应文件是否不再需要。

  4. 等待1个小时,检查该告警是否清除。

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

检查系统阈值是否正确设置。

  1. 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > HDFS > 配置 > 全部配置”,搜索“dfs.namenode.fs-limits.max-directory-items”参数,确定当前值配置是否合理。

    • 是,执行9
    • 否,执行6

  2. 增大该参数值。
  3. 保存配置,选择“概览 > 更多 > 重启服务”。
  4. 等待1个小时,检查该告警是否清除。

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

收集故障信息。

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

告警清除

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

参考信息

无。