3

假设我在 Spark 中使用推测 = 运行工作true

如果一个任务(比如 T1)需要很长时间,Spark 会在另一个执行器上启动任务 T1(比如 T2)的副本,而不会杀死 T1。

现在,如果 T2 也比所有成功完成的任务的中位数花费更多的时间,Spark 会在另一个执行器上启动另一个任务 T3 吗?

如果是,这种新任务的产生是否有任何限制?如果不是,Spark 是否将自己限制为一项并行作业,并无限期地等待其中一项的完成?

4

1 回答 1

2

火花TaskSetManager负责该逻辑。在尝试启动可推测任务时,它正在检查最多运行一个原始任务的副本。因此,在您的示例中,它不应该启动 T3,因为将运行 2 个副本。

您可以在此处找到代码的相关部分。

于 2019-12-18T15:15:53.953 回答