NameNode发生full GC优化及建议

2023-01-06 15:16:17 浏览数 (1)

问题现象:emr控制台“集群监控”-->“集群事件”里会出现“ NameNode 发生full GC ”的告警事件

原因:堆内存使用率过大或配置的堆内存不合理

可能影响:

  • namenode进程垃圾回收时间过长或内存oom,可能导致该NameNode进程无法正常提供服务,影响hdfs的正常读写性能

处理建议:

  • 调整NameNode堆内存的大小
  • NameNode中文件对象需要占用一定的内存,消耗内存大小随文件对象的生成而线性递增。NameNode中,文件对象可以是文件、目录或者Block。在NameNode WebUI界面的Summary也可以看到文件系统对象(filesystem objects)的统计。
1659604757022.jpg1659604757022.jpg

       2. 在EMR控制台“集群服务”下,点击“HDFS”进入HDFS服务管理列表,切到“配置管理”页签,修改hadoop-env.sh中的“NNHeapsize”配置项,文件系统对象个数和NameNode配置的JVM参数的对应关系建议如下

代码语言:javascript复制
文件对象数量达到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
  • 清理hdfs集群无用文件(如果无法增加内存,可以删除集群中无用文件,减少集群中的文件对象数量)
  • hadoop用户登录集群节点,选择并确认是无用的文件或目录,执行hdfs dfs -rm -r -skipTrash 文件或目录路径命令,需注意选项-skipTrash将跳过回收站(如果启用)并立即删除指定的文件。

PS:如需了解和配置监控指标及事件告警可参考下列文档:

emr集群事件

快速配置云监控事件告警推送

emr监控指标项告警配置

0 人点赞