DolphinScheduler 任务执行源码流程分析

一个立即执行的任务会经过

1.将command持久化到 mysql表中

2.MasterSchedulerService 定时扫描表 会将待处理任务进行封装为ProcessInstance

3.遍历进程实例,通过workFlowExecuteThread线程调度执行

4.根据进程实例进行 dag构建,初始化队列,提交任务

5.调用dispatchTask进行服务提交,在提交是会对taskUpdateQueue进行检查 是否初始化,如果没有初始化会先进行初始化然后将任务封装为 TaskPriority 放入队列

6.TaskPriorityqueueueConsumer 不断轮询队列中的数据,接收到dispatcher的TaskPriority, 进行提交

7. 调用Client进行worker的Handler进行处理 -> 这里已经转接给 WorkerServer

具体的流程图:

 

原图看下面链接 

dolphinScheduler | ProcessOn免费在线作图,在线流程图,在线思维导图 |

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于DolphinScheduler源码分析,我可以给你一些大致的指导。DolphinScheduler是一款开源的分布式任务调度系统,主要用于大数据领域的任务调度和数据处理。它采用了分布式架构,支持高可用性和高可扩展性。 首先,你可以从DolphinScheduler的GitHub仓库中获取源代码:https://github.com/apache/incubator-dolphinscheduler源码中,你可以先从入口开始分析,主要涉及到的类是`org.apache.dolphinscheduler.server.master.MasterServerApplication`和`org.apache.dolphinscheduler.server.worker.WorkerServerApplication`,它们分别是Master节点和Worker节点的入口。 从Master节点入口开始,你可以深入了解Master节点的整体架构和实现。一些关键的类包括`org.apache.dolphinscheduler.server.master.MasterSchedulerService`、`org.apache.dolphinscheduler.server.master.runner.MasterSchedulerThread`和`org.apache.dolphinscheduler.server.master.cache.ScheduleService`等。 在Worker节点方面,你可以关注`org.apache.dolphinscheduler.server.worker.runner.WorkerManager`、`org.apache.dolphinscheduler.server.worker.runner.WorkerExecProcessor`和`org.apache.dolphinscheduler.server.worker.cache.LocalTaskCacheManager`等类,它们负责Worker节点的任务执行和管理。 此外,还有一些其他重要的模块需要进行源码分析,比如任务调度算法、任务执行环境配置、任务依赖处理、日志管理等。 在进行源码分析时,你可以结合官方提供的文档和注释,以及各个类和方法的调用关系来理清思路。可以通过IDE的调试功能和日志输出来帮助你更好地理解源码执行流程和逻辑。 总体来说,DolphinScheduler源码分析需要一定的时间和精力,建议你先对整体架构和关键模块有一个整体的了解,然后再深入到具体的实现细节。希望这些信息对你有所帮助,祝你顺利进行源码分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值