我正在开发一个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 不同
日志问题
- 连续完整气相色谱
- 长时间停顿
- 等待资源的应用程序
分析链接
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