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

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

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

Worker容错流程是这样的

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

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

3. 容错的流程如下:

    3.1 通过已下线的 Worker 的地址和表示[正在运行]的状态数组获取需要容错的TaskInstance 列表。

    3.2 遍历列表对每个 TaskInstance 进行处理:

         3.2.1 判断这个 TaskInstance 是否需要容错,因为 Worker 宕机以后有可能被 Monitor 重启动成功,那么 Master 会继续给它分配任务,所以只有老 Worker 上正在运行的 TaskInstance 需要容错,【3.1】里面拿到的需要容错的TaskInstance 列表可能会存在新 Worker 所执行的任务

        3.2.2 检查 Task 是否存在 YarnApplicationId,如果存在的话就把 Yarn 任务Kill 掉

        3.2.3 将 TaskInstance 的状态更新为 NEED_FAULT_TOLERANCE,更新到数据库里面

Master的任务调度处理如下

在 MasterExecThread 这个线程里面如果检测到任务的状态为 NEED_FAULT_TOLERANCE,会进行 Alert,同时会将任务放到 readyToSubmitTaskList,重新分发给 Worker 去运行

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

【相关阅读】

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 先收藏也是好的
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值