假设我在Spark中以推测= true
的身份从事工作。
如果一个任务(例如T1)花费很长时间,Spark会在另一个执行器上启动任务T1的副本,例如T2,而不会杀死T1。
现在,如果T2花费的时间比所有成功完成任务的中值还要长,Spark会在另一个执行器上启动另一个任务T3吗?
如果是,那么产生新任务是否有任何限制?如果否,Spark是否将自身限制为一项并行作业,并无限期地等待其中一项完成?
答案 0 :(得分:1)
火花cl main.cpp user32.lib opengl32.lib gdi32.lib /EHsc /DEBUG /Z7
负责该逻辑。尝试启动可推测任务时,它正在检查原始任务的至多副本是否正在运行。因此,在您的示例中,永远不要启动T3,因为它将运行2个副本。
您可以找到代码here的相关部分。