我正在运行带有多个联接的Spark job
。这项工作通常会在30分钟内完成。但是,它很少会无限期地卡住并且无法从状态中恢复。
要恢复该状态,我需要转到spark UI的执行程序页面,并使用sudo kill -9
命令终止Java进程。
为了缓解困境,我使用以下配置启用了火花推测功能
-- conf spark.speculation=true
-- conf spark.speculation.multiplier=8
-- conf spark.speculation.quantile=.95
但是,与此同时,我看到投机任务也无限期地陷入困境。
在深入潜水时,我发现投机任务正在运行困难的工作所在的同一个盒子中产生。这可能是由于locality of data based scheduling
程序造成的。
任何想法我该如何解决此问题?