
# ALM-14007 NameNode堆内存使用率超过阈值
#### 告警解释
系统每30秒周期性检测HDFS NameNode堆内存使用率，并把实际的HDFS NameNode堆内存使用率和阈值相比较。HDFS NameNode堆内存使用率指标默认提供一个阈值范围。当HDFS NameNode堆内存使用率超出阈值范围时，产生该告警。
用户可通过"运维 \> 告警 \> 阈值设置 \> *待操作集群的名称* \> HDFS"修改阈值。
平滑次数为1，HDFS NameNode堆内存使用率小于或等于阈值时，告警恢复；平滑次数大于1，HDFS NameNode堆内存使用率小于或等于阈值的90%时，告警恢复。
#### 告警属性
| 告警ID  | 告警级别                                                 | 是否自动清除 |
|:---|:---|:---|
| 14007 | 紧急（默认阈值为98%） 重要（默认阈值为95%） | 是      |
   
#### 告警参数
| 参数名称              | 参数含义                  |
|:---|:---|
| 来源                | 产生告警的集群名称。            |
| 服务名               | 产生告警的服务名称。            |
| 角色名               | 产生告警的角色名称。            |
| 主机名               | 产生告警的主机名。             |
| Trigger condition | 系统当前指标取值满足自定义的告警设置条件。 |
   
#### 对系统的影响
HDFS NameNode堆内存使用率过高，会影响HDFS的数据读写性能。
#### 可能原因
HDFS NameNode配置的堆内存不足。
#### 处理步骤
**清除无用文件。**
1. 以**root** 用户登录HDFS客户端，用户密码为安装前用户自定义，请咨询系统管理员。执行**cd** 命令进入客户端安装目录，然后执行**source bigdata_env** 。
   
   如果集群采用安全版本，要进行安全认证。
   执行**kinit hdfs**命令，按提示输入密码。向MRS集群管理员获取密码。
   
   
2. 执行**hdfs dfs -rm -r** *文件或目录路径*命令，确认删除无用的文件。
3. 检查本告警是否恢复。 
   - 是，处理完毕。
   
   - 否，执行[步骤 4]。
   
   
   
   
**查看NameNode JVM内存使用情况和当前配置。**
4. 在FusionInsight Manager首页，选择"集群 \> *待操作集群的名称* \> 服务 \> HDFS"。
5. 在"基本信息"区域，单击"NameNode(主)"，显示HDFS WebUI页面。 
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   **admin**用户默认不具备其他组件的管理权限，如果访问组件原生界面时出现因权限不足而打不开页面或内容显示不全时，可手动创建具备对应组件管理权限的用户进行登录。
   
   
6. 在HDFS WebUI，单击"Overview"页签，查看Summary部分显示的HDFS中当前文件数量，目录数量和块数量信息。
7. 在FusionInsight Manager首页，选择"集群 \> *待操作集群的名称* \> 服务 \> HDFS \> 配置 \> 全部配置"，在"搜索"中，输入"GC_OPTS"，确定当前"HDFS-\>NameNode"的"GC_OPTS"内存参数。
**对系统进行调整。**
8. 根据[步骤 6]中的文件数据量和[步骤 7]中NameNode配置的堆内存参数，检查当前配置的内存是否不合理。
   
   - 是，执行[步骤 9]。
   
   - 否，执行[步骤 11]。
   
   
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   HDFS的文件对象数量（filesystem objects=files+blocks）和NameNode配置的JVM参数的对应关系建议如下：
   - 文件对象数量达到10,000,000，则JVM参数建议配置为：-Xms6G -Xmx6G -XX:NewSize=512M -XX:MaxNewSize=512M
   
   - 文件对象数量达到20,000,000，则JVM参数建议配置为：-Xms12G -Xmx12G -XX:NewSize=1G -XX:MaxNewSize=1G
   
   - 文件对象数量达到50,000,000，则JVM参数建议配置为：-Xms32G -Xmx32G -XX:NewSize=3G -XX:MaxNewSize=3G
   
   - 文件对象数量达到100,000,000，则JVM参数建议配置为：-Xms64G -Xmx64G -XX:NewSize=6G -XX:MaxNewSize=6G
   
   - 文件对象数量达到200,000,000，则JVM参数建议配置为：-Xms96G -Xmx96G -XX:NewSize=9G -XX:MaxNewSize=9G
   
   - 文件对象数量达到300,000,000，则JVM参数建议配置为：-Xms164G -Xmx164G -XX:NewSize=12G -XX:MaxNewSize=12G
    
   
   
9. 按照文件对象数量和内存对应关系，对NameNode的堆内存参数进行修改，并单击"保存"，选择"概览 \> 更多 \> 重启服务"进行重启。
   
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
   服务在重启过程中将不可用。另外，依赖该服务的上层服务也将受到影响。
   
   
10. 检查本告警是否恢复。 
    - 是，处理完毕。
    
    - 否，执行[步骤 11]。
    
    
    
    
**收集故障信息。**
11. 在FusionInsight Manager首页，选择"运维 \> 日志 \> 下载"。
12. 在"服务"中勾选待操作集群的如下节点信息。 
    - ZooKeeper
    
    - HDFS
    
    
    
    
13. 单击右上角的![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0263895680.png)设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后10分钟，单击"下载"。
14. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
无。
