更新时间:2024-11-12 GMT+08:00

ALM-14006 HDFS文件数超过阈值

告警解释

系统每30秒周期性检测HDFS文件数,并把实际文件数和阈值相比较。当检测到HDFS文件数指标超出阈值范围时产生该告警。

平滑次数为1,HDFS文件数指标的值小于或等于阈值时,告警恢复;平滑次数大于1,HDFS文件数指标的值小于或等于阈值的90%时,告警恢复。

告警属性

告警ID

告警级别

是否自动清除

14006

次要(MRS 3.3.1之前版本)

重要(MRS 3.3.1及之后版本)

告警参数

参数名称

参数含义

来源

产生告警的集群名称。

服务名

产生告警的服务名称。

角色名

产生告警的角色名称。

主机名

产生告警的主机名。

NameService名

产生告警的NameService名称。

Trigger condition

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

对系统的影响

HDFS文件数过多可能造成HDFS系统响应慢或磁盘被占满。

可能原因

HDFS文件数超过阈值。

处理步骤

检查系统中的文件数量。

  1. 在FusionInsight Manager首页,查看当前的HDFS文件数。HDFS文件数可以通单击“集群 > 待操作集群的名称 > 服务 > HDFS”,单击图表区域右上角的下拉菜单,选择“定制 > 文件和块”,勾选“HDFS文件”和“HDFS块数”监控项查看。
  2. 在“集群 > 待操作集群的名称 > 服务 > HDFS > 配置 > 全部配置”中查找“NameNode”下的GC_OPTS参数。
  3. 配置文件对象数阈值:修改GC_OPTS参数中Xmx的值(Xmx内存值对应文件数阈值的公式为(y = 0.2007 x - 0.6312),其中x为内存数Xmx(GB),y为文件数(单位KW)。用户根据需要调整内存大小)。
  4. 确认GC_PROFILE的值为custom,使GC_OPTS配置生效。单击“保存”,单击“更多 > 重启服务”重启服务。

    服务在重启过程中将不可用。另外,依赖该服务的上层服务也将受到影响。

  5. 检查本告警是否清除。

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

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

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

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

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

  2. 执行hdfs dfs -ls 文件或目录路径命令,检查该目录下的文件或目录是否是可以删除的无用文件。

    • 是,执行8
    • 否,执行9

  3. 执行hdfs dfs -rm -r 文件或目录路径命令。确认删除无用的文件后,等待文件在垃圾站中超过保留时间后(NameNode的配置参数“fs.trash.interval”指定了垃圾站中数据的保留时间),检查本告警是否清除。

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

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

收集故障信息。

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

告警清除

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

参考信息

NameNode JVM参数配置规则

NameNode JVM参数“GC_OPTS”默认值为:

-Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -Djdk.tls.ephemeralDHKeySize=3072 -Djdk.tls.rejectClientInitiatedRenegotiation=true -Djava.io.tmpdir=${Bigdata_tmp_dir}

NameNode文件数量和NameNode使用的内存大小成比例关系,文件对象变化时请修改默认值中的“-Xms2G -Xmx4G -XX:NewSize=128M -XX:MaxNewSize=256M”。参考值如下表所示。
表1 NameNode JVM配置

文件对象数量

参考值

10,000,000

-Xms6G -Xmx6G -XX:NewSize=512M -XX:MaxNewSize=512M

20,000,000

-Xms12G -Xmx12G -XX:NewSize=1G -XX:MaxNewSize=1G

50,000,000

-Xms32G -Xmx32G -XX:NewSize=3G -XX:MaxNewSize=3G

100,000,000

-Xms64G -Xmx64G -XX:NewSize=6G -XX:MaxNewSize=6G

200,000,000

-Xms96G -Xmx96G -XX:NewSize=9G -XX:MaxNewSize=9G

300,000,000

-Xms164G -Xmx164G -XX:NewSize=12G -XX:MaxNewSize=12G