繁体   English   中英

如何取消Spark Hadoop RDD计算

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM