为什么Spark会杀死任务?

3

我正在运行一个Spark计算应用程序,经常遇到任务被杀死的问题。以下是在我的Spark控制台中的显示:

enter image description here

可以看到,一些工作的描述中包含(_num_ killed: another attempt succeeded)。这不仅是失败了,而是有所不同。有人能解释一下是什么吗?


处理过程中出现异常,内存不足,其他硬件问题,计算时间过长 + 推测工作。 - T. Gawęda
2个回答

11

如果一个任务完成所需的时间异常长,Spark 可能会启动额外的复制任务,以便它们可以更快地完成。这被称为推测执行。如果其中一个副本成功了,其他副本则会被终止。

请查看以 spark.speculation 开头的参数:https://spark.apache.org/docs/latest/configuration.html


1
被杀 - 意味着执行器被停止并要求杀死执行器的工作者所杀死。这种情况可能是由于许多原因,例如某些用户驱动的操作,或者您的执行器已完成处理,但由于某种原因它不存在,但工作者正在退出,因此需要杀死执行器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接