YARN因超出内存限制而杀死了容器。使用了14.8 GB的6 GB物理内存

时间:2019-02-15 11:53:22

标签: pyspark

我从事以下工作

  1. 通过spark sql从镶木地板中加载数据并将其转换为 熊猫角数据大小仅为250 MB
  2. 运行rdd.foreach以 迭代相对的一些数据集(1000行),并采用 步骤1的pandas df并进行一些转换。

经过几次迭代后,我因超出内存限制错误而被YARN杀死了一个容器。

Container killed by YARN for exceeding memory limits. 14.8 GB of 6 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead

我无法理解为什么错误显示14.8 GB的6 GB物理内存已使用?

我尝试增加spark.yarn.executor.memoryOverhead 我使用了以下命令

火花提交-主纱线-部署模式群集--num-executors 4 --executor-cores 2 --executor-memory 2G --conf spark.yarn.executor.memoryOverhead = 4096 --py-文件test.zip app_main.py

我正在使用spark 2.3

yarn.scheduler.minimum-allocation-mb = 512 MB
yarn.nodemanager.resource.memory-mb = 126 GB

1 个答案:

答案 0 :(得分:0)

这是使用memoryOverhead选项时的常见错误之一,最好使用其他选项来调整作业。

http://ashkrit.blogspot.com/2018/09/anatomy-of-apache-spark-job.html帖子讨论了这个问题以及如何处理。