YARN杀死的容器超出了内存限制。已使用52.6 GB的50 GB物理内存。考虑提高spark.yarn.executor.memoryOverhead

Ren*_*enu 5 hadoop-yarn apache-spark

使用以下配置运行具有1 TB数据的Spark作业:

33G执行程序内存40个执行程序每个执行程序5个内核

17 g内存开销

此错误的可能原因是什么?

sam*_*est 3

你从哪里得到这个警告?哪些特定的日志?你很幸运,你甚至收到了警告:)。确实 17g 看起来已经足够了,但你确实有 1TB 的数据。我不得不使用更多的 30g 来获得比这更少的数据。

错误的原因是yarn为不在执行器内存空间中的容器使用了额外的内存。我注意到更多的任务(分区)意味着使用更多的内存,并且洗牌通常更重,除此之外我没有看到与我所做的任何其他对应关系。不知何故,某些东西正在不必要地消耗内存。

看来世界正在转向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 。如果没有尝试谷歌搜索“纱线上的火花,我所有的记忆都消失了”