【发布时间】:2018-07-10 00:17:51
【问题描述】:
情况如下:我启动了一个 spark 作业,但由于 OOM 的许多任务失败而失败。所以我增加了任务的内存分配。我仍然看到一些节点因 OOM 失败,但这项工作最终可能会成功。我的问题是 Spark 如何处理这个问题?似乎 Spark 可以在尝试失败后重新分配数据。
附言失败的任务是在批处理作业中应用Window and Rank 操作。
更新: 我在 YARN 集群模式下运行批处理作业。所有任务都配置为具有相同的内存。
【问题讨论】:
-
所有节点的内存量都一样吗?您使用的是 YARN 还是 Standalone?
-
@cricket_007 所有节点都有相同的内存。我在 YARN 集群模式下运行作业。
-
您可以增加执行程序内存,但您仍然受到纱线容器大小和所有其他进程在任何给定机器上消耗内存的限制
-
@cricket_007 内存在纱线容器大小的限制范围内。我的好奇心是在同一个作业运行中,某些任务可以在某些执行器上成功,但在其他执行器上失败
-
正如我所说,您需要考虑在集群中其他机器上运行的非 Spark 应用程序