dolphinscheduler默认zkSessionTimeout dolphinscheduler使用_github

点击上方蓝字关注 Apache DolphinScheduler

dolphinscheduler默认zkSessionTimeout dolphinscheduler使用_github

dolphinscheduler默认zkSessionTimeout dolphinscheduler使用_Apache_03

dolphinscheduler默认zkSessionTimeout dolphinscheduler使用_apache_04

Apache DolphinScheduler(incubating),简称”DS”, 中文名 “海豚调度”(海豚聪明、人性化,又左右脑可互相换班,终生不用睡觉)。DolphinScheduler 正在像它的名字一样,努力成为一个“开箱即用”的灵活易用的大数据任务调度系统。

官网地址:https://dolphinscheduler.apache.org/

dolphinscheduler默认zkSessionTimeout dolphinscheduler使用_apache_04

今天给大家带来的分享是 DolphinScheduler 源码剖析之 Master 容错处理流程

Master 容错流程是这样的

1. 当 ZooKeeper 监听到有 Master 节点挂了,就会去通知其他 Master 进行容错

2. 收到通知的 Master 会通过分布式锁去“抢”到容错的操作,拿到锁的 Master 开始进行容错处理

3.容错的流程如下:

    3.1 通过已下线的Master的地址和正在运行的工作流状态数组获取需要容错的ProcessInstance列表,

    3.2 遍历列表对每个工作流进行处理:

        3.2.1 将工作流的Host(也就是由哪个Master负责调度)置为空,更新到数据库里面

        3.2.2 构造RECOVER_TOLERANCE_FAULT_PROCESS类型的Command插入到Command表中

Master 调度工作流的基础流程

在 MasterSchedulerService 这个线程里面会尝试获取分布式锁,拿到锁以后会去数据库里面拿到一条 Command 去执行,如果容错 Command 成功插入到表里了就会在后面的操作中被任意一个 Master 拿到并进行处理。

dolphinscheduler默认zkSessionTimeout dolphinscheduler使用_github_06

以上就是我对 DolphinScheduler 的 Master 容错处理的分析,欢迎大家指正