【问题标题】:EMR Spark java Application GC ProblemsEMR Spark java应用GC问题
【发布时间】:2018-10-12 11:16:48
【问题描述】:

我正在开发一个 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. 连续 Full GC
  2. 长时间停顿
  3. 应用程序等待资源

分析链接

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

我不是 CG 采集器动力学方面的专家,谁能帮我找出问题所在?

【问题讨论】:

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


    【解决方案1】:

    你的 spark executor(s) 很大,而 big executor(s) 会引入大量的 GC 开销

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

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

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

    【讨论】:

    • 谢谢我添加了更多的执行程序,减少了分配给每个程序的内存,我解决了垃圾收集器问题。此外,我用 g1gc 替换 CMS 垃圾。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多