![](/img/trans.png)
[英]“Container killed by YARN for exceeding memory limits. 10.4 GB of 10.4 GB physical memory used” on an EMR cluster with 75GB of memory
[英]Container killed by YARN for exceeding memory limits. 52.6 GB of 50 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead
使用以下配置以1 TB数据运行spark作业:
33G执行程序内存40执行程序每个执行程序5个核心
17克内存开销
这个错误的可能原因是什么?
你从哪里得到那个警告? 哪个特定日志? 你很幸运,你甚至得到一个警告:)。 确实17g似乎已经足够了,但是你确实有1TB的数据。 我不得不使用更多像30g那样的数据。
出错的原因是纱线为不存在于执行程序的内存空间中的容器使用额外的内存。 我注意到更多的任务(分区)意味着使用更多的内存,并且洗牌通常更重,除了我没有看到任何其他与我所做的对应。 不知何故,某种东西在不必要地吃着记忆。
似乎世界正在向Mesos转移,也许它没有这个问题。 更好的是,只使用Spark独立。
更多信息: http : //www.wdong.org/wordpress/blog/2015/01/08/spark-on-yarn-where-have-all-my-memory-gone/ 。 这个链接似乎有点死(这是对YARN吞噬记忆方式的深入研究)。 此链接可能有效: http : //m.blog.csdn.net/article/details?id = 50387104 。 如果没有尝试谷歌搜索“火花在我的记忆消失的地方”
一个可能的问题是您的虚拟内存与物理内存成比例变大。 您可能希望在yarn-site.xml中将yarn.nodemanager.vmem-check-enabled
为false
以查看发生的情况。 如果错误停止,则可能是问题。
我在其他地方回答了类似的问题并在那里提供了更多信息: https : //stackoverflow.com/a/42091255/3505110
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.