AWS Glue - Spark 作业 - 如何增加内存限制或更有效地运行?

Posted

技术标签:

【中文标题】AWS Glue - Spark 作业 - 如何增加内存限制或更有效地运行?【英文标题】:AWS Glue - Spark Job - how to increase Memory Limit or run more efficiently? 【发布时间】:2020-03-10 19:45:16 【问题描述】:

在运行 Spark (Glue) 作业时 - 在将 Dataframe 写入 S3 期间 - 出现错误:

Container killed by YARN for exceeding memory limits.  5.6 GB of 5.5 GB physical memory used.
Consider boosting spark.yarn.executor.memoryOverhead or 
disabling yarn.nodemanager.vmem-check-enabled because of YARN-4714.

有没有简单的治疗方法?

如何优化 Dataframe 到 S3 的写入(以使用更少的内存)?

如何增加容器的内存以便我们有更多的空间来使用它们?

【问题讨论】:

错误信息中已经给出了解决方案。禁用 vmem 检查。 如果您有增加 DPU 内存软限制的支持,您必须增加 DPU 的数量或必须提出 AWS 支持票。 如何禁用 vmem 检查? 【参考方案1】:

您可能已经知道,AWS Glue 作业不支持增加内存。但是您可以选择 G1.X 作为 Glue 作业的工人类型。 AWS 建议将其用于内存密集型工作负载。 https://docs.aws.amazon.com/en_us/glue/latest/dg/add-job.html

除此之外,我没有看到任何增加内存的配置选项。

您是否检查了作业运行时指标的内存配置文件?

【讨论】:

如何检查作业运行时指标的内存配置文件? docs.aws.amazon.com/glue/latest/dg/…

以上是关于AWS Glue - Spark 作业 - 如何增加内存限制或更有效地运行?的主要内容,如果未能解决你的问题,请参考以下文章

如何克服 AWS Glue 作业中的 Spark“设备上没有剩余空间”错误

优化 Spark AWS GLUE 作业

从 EMR 迁移到 AWS Glue 后在 Spark SQL 中找不到表

AWS Glue 作业内存不足

将 AWS Glue 作业迁移到 EC2

AWS Glue输出文件名