EMR Spark java Application GC Problems



我正在开发一个Spark应用程序,我遇到了一个严重的问题 与CGTime任务时间,结果非常高。 我导出了日志并使用GC轻松分析了它。

集群硬件:1 个驱动程序 M4.2x大 16 个 vCore,32 GiB 内存,仅 EBS 存储 弹性存储:32 GiB

15 核: M4.2x大 16 个 vCore,32 GiB 内存,仅 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. 连续完整气相色谱
  2. 长时间停顿
  3. 等待资源的应用程序

分析链接

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

我不是CG收集器动态的专家,有人可以帮助我找到问题吗?

您的 Spark 执行器大小很大,而大型执行器会引入沉重的 GC 开销

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

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

或者至少从这里调整执行人:https://youtu.be/OkyRdKahMpk?t=1308

最新更新