点击上方蓝字关注 Apache DolphinScheduler

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

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

今天给大家带来的分享是 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 的 Master 容错处理的分析,欢迎大家指正

预告

为了更好的可扩展性和性能,DolphinScheduler 的重构讨论将于下周五晚19:00 开始,欢迎感兴趣的伙伴参与

您知道么?

参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括文档、翻译、答疑、测试、代码、布道等,并且社区将文档贡献放在第一位,此外也极其欢迎各种实践文章,DolphinScheduler开源社区非常期待您的参与。

贡献第一个PR(文档、代码) 我们也希望是简单的,试想如果是一个新人一上来就贡献1个改了几十个文件的 PR 将会对参与 review 的伙伴的心理造成多大的摧残,????

文档github地址:https://github.com/apache/incubator-dolphinscheduler-website

当然如果您酷爱coding,社区也是非常欢迎“show me the code"的。

戳原文,立刻奔向

DolphinScheduler 
的 github 仓库一起玩耍,来个 star 先收藏也是好的~

DolphinScheduler 源码剖析之 Master 容错处理流程的更多相关文章

  1. Apache DolphinScheduler 源码剖析之 Worker 容错处理流程

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

  2. 07 flask源码剖析之用户请求过来流程

    07 Flask源码之:用户请求过来流程 目录 07 Flask源码之:用户请求过来流程 1.创建ctx = RequestContext对象 2. 创建app_ctx = AppContext对象 ...

  3. flask源码剖析系列(系列目录)

    flask源码剖析系列(系列目录) 01 flask源码剖析之werkzurg 了解wsgi 02 flask源码剖析之flask快速使用 03 flask源码剖析之threading.local和高 ...

  4. Apache Spark源码剖析

    Apache Spark源码剖析(全面系统介绍Spark源码,提供分析源码的实用技巧和合理的阅读顺序,充分了解Spark的设计思想和运行机理) 许鹏 著   ISBN 978-7-121-25420- ...

  5. 《Apache Spark源码剖析》

    Spark Contributor,Databricks工程师连城,华为大数据平台开发部部长陈亮,网易杭州研究院副院长汪源,TalkingData首席数据科学家张夏天联袂力荐1.本书全面.系统地介绍了 ...

  6. (升级版)Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)

    本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课 ...

  7. Node 进阶:express 默认日志组件 morgan 从入门使用到源码剖析

    本文摘录自个人总结<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 章节概览 morgan是express默认的日志中间件, ...

  8. 菜鸟nginx源码剖析 框架篇(一) 从main函数看nginx启动流程(转)

    俗话说的好,牵牛要牵牛鼻子 驾车顶牛,处理复杂的东西,只要抓住重点,才能理清脉络,不至于深陷其中,不能自拔.对复杂的nginx而言,main函数就是“牛之鼻”,只要能理清main函数,就一定能理解其中 ...

  9. 豌豆夹Redis解决方案Codis源码剖析:Dashboard

    豌豆夹Redis解决方案Codis源码剖析:Dashboard 1.不只是Dashboard 虽然名字叫Dashboard,但它在Codis中的作用却不可小觑.它不仅仅是Dashboard管理页面,更 ...

随机推荐

  1. 给IDEA道个歉,这不是它的BUG,而是反编译插件的BUG。

    你好呀,我是歪歪. 上周我不是发了<我怀疑这是IDEA的BUG,但是我翻遍全网没找到证据!>这篇文章吗. 主要描述了在 IDEA 里面反编译后的 class 文件中有这样的代码片段: 很明 ...

  2. 【freertos】012-事件标志概念和实现细节

    目录 前言 12.1 实现事件机制的预备知识 12.1.1 守护任务 12.1.2 事件的不确定性 12.1.3 事件组的报文 12.2 事件概念 12.3 事件用途参考 12.4 事件实现原理简述 ...

  3. Python数据分析--Numpy常用函数介绍(6)--Numpy中矩阵和通用函数

    在NumPy中,矩阵是 ndarray 的子类,与数学概念中的矩阵一样,NumPy中的矩阵也是二维的,可以使用 mat . matrix 以及 bmat 函数来创建矩阵. 一.创建矩阵 mat 函数创 ...

  4. 【FAQ】运动健康服务REST API接口使用过程中常见问题和解决方法总结

    华为运动健康服务(HUAWEI Health Kit)为三方生态应用提供了REST API接口,通过其接口可访问数据库,为用户提供运动健康类数据服务.在实际的集成过程中,开发者们可能会遇到各种问题,这 ...

  5. 1.1 操作系统的第一个功能——虚拟化硬件资源 -《zobolの操作系统学习札记》

    1.1 操作系统的第一个功能--虚拟化硬件资源 目录 1.1 操作系统的第一个功能--虚拟化硬件资源 问1:操作系统一般处于计算机系统的哪一个位置? 问2:管理硬件资源为什么要单独交给操作系统? 问3 ...

  6. 「快速学习系列」我熬夜整理了Vue3.x响应性API

    前言 Vue3.x正式版发布已经快半年了,相信大家也多多少少也用Vue3.x开发过项目.那么,我们今天就整理下Vue3.x中的响应性API.响应性APIreactive 作用: 创建一个响应式数据. ...

  7. Ubuntu系统iptables安全防护整改计划

    端口开放 默认防火墙是开放所有端口的,如果拿来做应用服务器,就很危险,所以要把防火墙用起来,只将需要的端口开放,ubuntu用的是iptables防火墙. iptables处理流程 iptables ...

  8. JDBC: ThreadLocal 类

    1.ThreadLocal ThreadLocal用于保存某个线程共享变量.在Java中,每个线程对象都有一个ThreadLocal<ThreadLocal,Object>,其中key就是 ...

  9. java geteway 手机返回数据

    import lombok.extern.slf4j.Slf4j; import org.reactivestreams.Publisher; import org.springframework.c ...

  10. Kafka 部署完在服务器端可以访问,而在外部其它电脑访问不了

    Kafka 部署完在服务器端可以访问,而在外部其它电脑访问不了 原因:config/server.properties的listeners和advertised.listeners 不配置的话默认的l ...