温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

datanode 内存及GC优化

发布时间:2020-09-18 15:18:04 来源:网络 阅读:1409 作者:断臂人 栏目:大数据

事件描述:

datanode内存被占用过大,负载过高,查看 hdfs dfsadmin -report 发现状态为 Dead ,查看datanode日志文件hadoop-sphuser-datanode-XXX.log ,发现下面的错误。

2019-05-11 16:20:26,551 ERROR org.apache.hadoop.hdfs.server.datanode.DirectoryScanner: Error compiling report

java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded

        at java.util.concurrent.FutureTask.report(FutureTask.java:122)

        at java.util.concurrent.FutureTask.get(FutureTask.java:192)

        at org.apache.hadoop.hdfs.server.datanode.DirectoryScanner.getDiskReport(DirectoryScanner.java:566)

        at org.apache.hadoop.hdfs.server.datanode.DirectoryScanner.scan(DirectoryScanner.java:425)

        at org.apache.hadoop.hdfs.server.datanode.DirectoryScanner.reconcile(DirectoryScanner.java:406)

        at org.apache.hadoop.hdfs.server.datanode.DirectoryScanner.run(DirectoryScanner.java:362)

        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)

分析:

GC占用大量时间但释放很小空间,超出了GC开销限制。

Sun 官方对此的定义:超过98%的时间用来做GC并且回收了不到2%的堆内存时会抛出 java.lang.OutOfMemoryError 异常。

解决办法:

加大堆内存

优化GC

1)、编辑 namenode master节点的配置文件 etc/hadoop/hadoop-env.sh ,修改 HADOOP_DATANODE_OPTS 参数为下所示:

export HADOOP_LOG_DIR=/data/hadoop-2.7.3/logs

export HADOOP_DATANODE_OPTS="-Xmx16G -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution"

 

-Xmx 配置为总内存的一半


参数说明:

JVM分别对新生代和旧生代采用不同的垃圾回收机制

并发收集器CMS具有响应时间优先的特点,所以是低延迟、低停顿的,CMS是老年代收集器。

-Xmx16G 堆内存设置为16G

-XX:+UseParNewGC 设置新生代内存收集为并行收集

-XX:+UseConcMarkSweepGC 使用CMS垃圾收集器,来为老年代内存并行收集

-XX:CMSInitiatingOccupancyFraction=80 设置Old区当对象存满80%的时候触发Full GC

-XX:+CMSParallelRemarkEnabled 并行运行最终标记阶段,加快最终标记的速度,降低标记停顿

-XX:+PrintTenuringDistribution 显示每次Minor GC时Survivor区中各个年龄段的对象的大小

2)、拷贝配置文件到集群的其他节点,然后重启服务

参考:

https://www.cnblogs.com/hit-zb/p/8651369.html


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI