[英]How to cancel Spark Hadoop RDD computation
假设我有NewHadoopRDD
,在计算期间其拆分之一失败。 有了本地跑步者,我很容易看到这个过程的所有阶段。
我看到任务失败,但是调度程序仅在注意到任务失败后才开始下一个任务。
15/02/19 20:58:58 INFO scheduler.TaskSetManager: Starting task 1.0 in stage 0.0 (TID 1, localhost, PROCESS_LOCAL, 1347 bytes)
15/02/19 20:58:58 INFO executor.Executor: Running task 1.0 in stage 0.0 (TID 1)
15/02/19 20:58:58 WARN scheduler.TaskSetManager: Lost task 0.0 in stage 0.0 (TID 0, localhost): java.lang.RuntimeException: java.sql.SQLException:
...
15/02/19 20:58:58 ERROR scheduler.TaskSetManager: Task 0 in stage 0.0 failed 1 times; aborting job
现在阶段被取消
15/02/19 20:58:58 ERROR scheduler.TaskSetManager: Task 0 in stage 0.0 failed 1 times; aborting job
15/02/19 20:58:58 INFO scheduler.TaskSchedulerImpl: Cancelling stage 0
15/02/19 20:58:58 INFO executor.Executor: Executor is trying to kill task 1.0 in stage 0.0 (TID 1)
15/02/19 20:58:58 INFO scheduler.TaskSchedulerImpl: Stage 0 was cancelled
控制甚至传递到上下文关闭...
15/02/19 20:58:58 INFO ui.SparkUI: Stopped Spark web UI at http://node4.hbase.vitech.com.ua:4040
但是随后我看到了下一阶段任务的日志输出。
15/02/19 20:58:58 INFO rdd.NewHadoopRDD: Input split: 0+0 ...
而且只有在调度程序停止时,我才能看到任务被杀死(在statusUpdate!上)。
15/02/19 20:58:58 INFO scheduler.DAGScheduler: Stopping DAGScheduler
15/02/19 20:58:58 INFO executor.Executor: Executor killed task 1.0 in stage 0.0 (TID 1)
15/02/19 20:58:58 ERROR scheduler.TaskSchedulerImpl: Exception in statusUpdate
我可以做些事情来更快地清理所有RDD资源吗? unpersist()
在这里没有帮助。 我看到它是上下文停止记录之前的记录。 但是无论如何,我会看到下一个任务日志。
无法快速恢复。 任务一旦启动,它就会自行完成或失败。 阶段失败或取消不会中断正在进行的任务。
我认为原因是基本上无法在Java中强行杀死线程 。 如果这是一个问题,则可以使用更多分区。 较小的任务完成得更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.