
# 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配置生效。单击"保存"，单击"更多 \> 重启服务"重启服务。 
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   服务在重启过程中将不可用。另外，依赖该服务的上层服务也将受到影响。
   
   
5. 检查本告警是否清除。 
   - 是，处理完毕。
   
   - 否，执行[步骤 6]。
   
   
   
   
**检查系统中是否有不需要的文件。**
6. 以**root** 用户登录HDFS客户端，用户密码为安装前用户自定义，请咨询系统管理员。执行**cd** 命令进入客户端安装目录，然后执行**source bigdata_env** 命令设置环境变量。
   
   如果集群采用安全版本，要进行安全认证。
   执行**kinit hdfs**命令，按提示输入密码。向MRS集群管理员获取密码。
   
   
7. 执行**hdfs dfs -ls** *文件或目录路径* 命令，检查该目录下的文件或目录是否是可以删除的无用文件。
   
   - 是，执行[步骤 8]。
   
   - 否，执行[步骤 9]。
   
   
   
   
8. 执行**hdfs dfs -rm -r** *文件或目录路径* 命令。确认删除无用的文件后，等待文件在垃圾站中超过保留时间后（NameNode的配置参数"fs.trash.interval"指定了垃圾站中数据的保留时间），检查本告警是否清除。
   
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   删除文件为高危操作，在执行操作前请务必确认对应文件是否不再需要。
   - 是，处理完毕。
   
   - 否，执行[步骤 9]。
   
   
   
   
**收集故障信息。**
9. 在FusionInsight Manager首页，单击"运维 \> 日志 \> 下载"。
10. 在"服务"中勾选待操作集群的"HDFS"。
11. 单击右上角的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0263895382.png)设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后10分钟，单击"下载"。
12. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
**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"。参考值如下表所示。
表1NameNode 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 |
   
