杀死单个Spark任务

13

我有一个非常长的Spark作业,其中少数任务目前处于停滞状态。有没有办法从驱动节点杀死这些停滞的任务?

由于权限限制,我可以登录但无法在从节点上杀死作业,因此我正在寻找一种仅从驱动节点完成此操作的方法。请注意,我不想杀死整个Spark作业,只是其中一个或两个停滞的任务。

如果有帮助的话,我正在使用Mesos并且可以访问Web UI,但该选项不包含杀死任务的选项。

1个回答

13

不行,你无法手动杀死一个独立的Spark任务,但是你可以使用Spark Speculation自动检测哪些任务执行时间过长并主动重启它们。

如果你想这么做,将spark.speculation设置为true,然后[如果你敢的话]修改spark.speculation.intervalspark.speculation.multiplierspark.speculation.quantile等配置选项。

相关文档: http://spark.apache.org/docs/latest/configuration.html#viewing-spark-properties

相关SO:如何处理在yarn-client中某些任务运行时间过长(相比其他任务)的问题?


Spark UI似乎允许您终止单个任务,并且我认为它们会重新安排并在下一次工作。这似乎表明有一个API用于杀死任务。但是,使用它可能需要进行大量手动操作。我正在遭受同样的问题,而猜测目前正引起其他问题,所以我正在考虑尝试它。 - John Humphreys
3
Spark UI可以杀死作业阶段,但我不知道任何可以杀死单个作业任务的功能。在UI中哪里可以进行任务终止? - Garren S
你是正确的,我道歉。我使用了错误的术语,我想到的是阶段。 - John Humphreys

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