Spark 推测的新任务是否有限制?

Is there a limit to new tasks for Spark speculation?

假设我 运行 在 Spark 有一份投机工作 = true

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

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

如果是,对新任务的产生有什么限制吗?如果不是,Spark 是否将自己限制为一个并行作业,并无限期地等待其中一个作业的完成?

火花 TaskSetManager 负责该逻辑。当尝试启动可推测的任务时,它正在检查原始任务的至多一个副本是 运行。所以在你的例子中它永远不应该启动 T3 因为会有 2 个副本 运行.

您可以找到代码的相关部分here