容错设计
容错设计
服务器戎机容错
master容错
依赖于zk的watcher机制,实现原理
其中master监控其他master和worker的目录,如果监听到remove事件,根据具体业务逻辑进行实例容错或任务实例容错
Master容错流程
Master容错完成之后则重新由DolphinScheduler中Scheduler线程调度,遍历 DAG 找到”正在运行”和“提交成功”的任务,对”正在运行”的任务监控其任务实例的状态,对”提交成功”的任务需要判断Task Queue中是否已经存在,如果存在则同样监控任务实例的状态,如果不存在则重新提交任务实例。
worker容错
任务重试
- 任务失败重试:任务级别,调度系统自动进行的,比如一个shell任务设置重试次数为3,那么shell任务运行失败后会再多尝试运行3次
- 流程失败恢复:流程级别的,是手动进行的,恢复是只能从失败的任务节点开始执行或从当前节点开始执行
- 流程失败重跑:流程级别的,手动进行的,重跑是从最初的开始节点进行
每一个节点(task)可以配置失败重试的次数,当该任务节点失败,会自动重试。直到成功或者超过配置的次数。如果任务节点达到了最大失败次数,工作流整个失败停止。失败的工作流可以手工重跑或者流程恢复
原创:做时间的朋友