1.driver宕机
(1)如果job运行在client:程序直接挂了
(2)如果job运行在cluster:
-》spark on standalone/mesos:通过spark-submit的参数–supervise可以指定当driver宕机的时候,在其他的节点上重新恢复
-》spark on yarn:自动恢复四次
2.executor宕机
比如executor进程所在机器(worker)宕机、Executor和Driver之间通信超时。则Driver直接把坏掉的executor从Driver列表中移除,然后重新向Resourcemanager/master申请资源,自动在work或者NodeManager上重新启动一个executor重新执行任务
3.task执行失败
Task任务执行过程中产生异常导致Task执行失败,自动进行恢复,最多失败4次
(1)Lineage方式 Task数据恢复/重新运行的机制实质上是RDD的容错机制,即Lineage机制
容错的方式为,当子RDD执行失败的时候,可以直接从父RDD进行恢复操作。
Spark RDD实现基于Lineage的容错机制,基于RDD的各项transformation构成了compute chain,在部分计算结果丢失的时候可以根据Lineage重新恢复计算。
(1)在窄依赖中,在子RDD的分区丢失,要重算父RDD分区时,父RDD相应分区的所有数据都是子RDD分区的数据&