我有一个很长的Spark工作,目前很少有任务被停止。有没有办法从驱动程序节点中杀死那些停滞的任务?
出于权限原因,我可以登录,但不能杀死从属节点上的作业,所以我正在寻找一种方法来单独从驱动程序节点执行此操作。请注意,我不想杀死整个Spark作业 - 只有一两个停滞的任务。
如果有帮助,我正在使用Mesos并可以访问Web UI,但这不包含终止任务的选项。
答案 0 :(得分:8)
不,不是真的。
您无法手动终止单个火花任务,但您可以使用火花推测自动确定哪些任务花费的时间过长并主动重启。
如果您想这样做,请将spark.speculation
设置为true,[如果您敢于]修改spark.speculation.interval
,spark.speculation.multiplier
,spark.speculation.quantile
配置选项。
相关文档: http://spark.apache.org/docs/latest/configuration.html#viewing-spark-properties
相关SO:How to deal with tasks running too long (comparing to others in job) in yarn-client?