前言

以下是基于海豚v2.0.1源码分析得出的图解:master和worker执行流程。

后面所有的讲解都是围绕这一张图,所以在看讲解时,请参考整个图去理解。讲解思路是化整为零,积点成线,集线成面。

本文需要对海豚有一定了解,使用经验的同学。以下简单说一些基础认识,名词叫法可能不太相同,但也应该比较好理解。

调度单元

海豚的调度粒度。海豚里有process和task两个定义,一个process有多个task,依赖关系是task级别的,而真正调度是process级别的,也就是每次调度都是调度整个process。

目前海豚是master和worker架构,分工也很明确:

master负责整个process生命周期,包括task的dag图构建,task的dag执行,选择提交worker,操作DB等;

worker负责task执行,是真正的执行器。这里需要注意,worker不操作DB!

Command解耦

海豚还有个应用层API服务,和master主要通过command解耦。比如正常调度(start_process),重跑(repeat_running)等

但是,终止(stop),暂停(pause)等还是通过netty直连master

dolphinscheduler v2.0.1 master和worker执行流程分析(一)相关推荐

  1. Apache DolphinScheduler v2.0.1 Master 和 Worker 执行流程分析系列(三)

    点亮 ⭐️ Star · 照亮开源之路 https://github.com/apache/dolphinscheduler 这是一系列关于 DolphinScheduler v2.0.1的源码分析文 ...

  2. dolphinscheduler v2.0.1 master和worker执行流程分析(四)

    目录 Worker接受执行 Worker注册的Processor 思考1 Worker接受执行 如红箭头所示,worker大致从接受到task,提交线程执行,最后响应结果结束. TaskExecute ...

  3. mysql 8.0 一条insert语句的具体执行流程分析(三)

    代码版本:mysql 8.0.22 编程语言:c++ && c++11 && c++14 && c++17 上一篇文章:mysql 8.0 一条inse ...

  4. mysql 8.0 一条insert语句的具体执行流程分析(二)

    继续上一篇文章:mysql 8.0 一条insert语句的具体执行流程分析(一)_一缕阳光的博客-CSDN博客 由于最近换工作一直在试用期内,在拼命的学习.总结中,因此没有时间写文章,今天转正了腾出来 ...

  5. Java多线程- 线程池的基本使用和执行流程分析 - ThreadPoolExecutor

    线程池的实现原理 池化技术 一说到线程池自然就会想到池化技术. 其实所谓池化技术,就是把一些能够复用的东西放到池中,避免重复创建.销毁的开销,从而极大提高性能. 常见池化技术的例如: 线程池 内存池 ...

  6. 动态执行流程分析和性能瓶颈分析的利器——gperftools的Cpu Profiler

    在<动态执行流程分析和性能瓶颈分析的利器--valgrind的callgrind>中,我们领略了valgrind对流程和性能瓶颈分析的强大能力.本文将介绍拥有相似能力的gperftools ...

  7. 动态执行流程分析和性能瓶颈分析的利器——valgrind的callgrind

    在<内存.性能问题分析的利器--valgrind>一文中我们简单介绍了下valgrind工具集,本文将使用callgrind工具进行动态执行流程分析和性能瓶颈分析.(转载请指明出于brea ...

  8. 【网络安全】Metasploit生成的Shellcode的导入函数解析以及执行流程分析(2)

    密码破解的利器--彩虹表(rainbow table) 确定 shellcode 依赖于哪些导入将使研究人员进一步了解其其余逻辑.不用动态分析shellcode,并且考虑到研究人员已经弄清楚了上面的哈 ...

  9. Mybatis执行流程分析_自定义简易Mybatis框架

    自定义简易Mybatis框架 Mybatis执行流程分析 Mybatis代码编写流程: Mybatis配置文件加载过程: 需求分析及技术概述 根据上述的功能结构图, 得出如下需求: 1. 需要具有配置 ...

最新文章

  1. mysql 单例模式好处_PHP单例模式的优点分析
  2. Josephus 问题相关
  3. BOOST_LOG_UNIQUE_IDENTIFIER_NAME宏用法的测试程序
  4. Ubuntu boost库文件安装编译
  5. 阿里云宣布与Facebook达成合作 让AI开发更简单
  6. 「SF图片上传不清晰」解决方案
  7. 函数递归/二分法/列表,字典生成式/三元表达式/匿名函数/内置函数
  8. ALTERA 命名规则
  9. java lambda 原理_Java Lambda表达式原理及多线程实现
  10. 内网穿透工具NatApp使用教程
  11. C2. Skyscrapers (hard version)(单调栈、dp)
  12. 【最优化导论】一维搜索方法
  13. 关于C++中的随机数生成器
  14. 计算广告:第一章——在线广告综述
  15. 关于PScs6无法拖入图片的解决
  16. (c++ 遗传算法解决TSP问题)不是吧,这就是遗传算法吗?爱了爱了
  17. 神经网络学说的主要观点,神经网络研究属于下列
  18. 如何解决移动硬盘弹出时报错:设备正在使用中
  19. android 版本更新和下载安装适配7.0 8.0 9.0
  20. return -1是什么意思

热门文章

  1. linux大型机如何下载数据,如何从大型机传输PS文件到Linux服务器?
  2. 什么是横向扩展、纵向扩展?
  3. 网络图片url转换成base64
  4. 微信小程序顶部标题栏仅保留右上角胶囊状按钮
  5. 解决 vue-paypal-checkout 导致 PayPal 按钮未正常显示
  6. MySQL语法练习---常见题型练习
  7. 【ML】第 1 章 :分布式机器学习:术语和概念
  8. win7 32位浏览器不能打开,64位浏览器正常的解决方法
  9. 企业为什么要使用云计算,主要有哪些优势?
  10. 2016年全国高中数学联赛加试T2解答