EMR Spark Java应用程序GC问题

时间:2018-10-12 11:16:49

标签: java apache-spark garbage-collection amazon-emr

我正在处理Spark应用程序,我遇到了严重的问题 使用CGTime任务时间,结果非常高。 我导出了日志并使用GC easy对其进行了分析。

集群硬件: 1个司机 m4.2xlarge 16个vCore,32个GiB内存,仅EBS存储 EBS存储:32 GiB

15个核心: m4.2xlarge 16个vCore,32个GiB内存,仅EBS存储 EBS存储:32 GiB

配置

hadoop-env.export   JAVA_HOME   /usr/lib/jvm/java-1.8.0
mapred-site mapreduce.fileoutputcommitter.algorithm.version 2
mapred-site mapred.output.committer.class   org.apache.hadoop.mapred.FileOutputCommitter
spark-defaults  spark.default.parallelism   880
spark-defaults  spark.executor.instances    44
spark-defaults  spark.yarn.executor.memoryOverhead  3072
spark-defaults  spark.executor.cores    10
spark-defaults  spark.yarn.driver.memoryOverhead    3072
spark-defaults  spark.driver.memory 18G
spark-defaults  spark.driver.cores  10
spark-defaults  spark.executor.memory   18G
spark-env.export    JAVA_HOME   /usr/lib/jvm/java-1.8.0

输入

维度为1.2 Tera的数据。

伪指令

1个读取数据 2地图配对|行->元组(行,1) 3个不同的

记录问题

  1. 连续完整GC
  2. 长暂停
  3. 应用程序等待资源

分析链接

http://gceasy.io/my-gc-report.jsp?p=c2hhcmVkLzIwMTgvMTAvMTIvLS1leGVjdXRvcjFzdGRvdXQudHh0LnppcC0tMTAtMzUtMjY=

我不是CG收集器动力学的专家,有人可以帮助我发现问题吗?

1 个答案:

答案 0 :(得分:1)

您的火花执行器很大,大型执行器会带来大量的GC开销

观看此视频,了解如何选择执行器的大小和调整性能。

我建议观看完整的视频:https://www.youtube.com/watch?v=OkyRdKahMpk

或至少从此处调整执行器:https://youtu.be/OkyRdKahMpk?t=1308