- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Apache DolphinScheduler 补数功能讲解
展开查看详情
1 . 2023 DolphinScheduler 补数功能讲解 讲师 :侯世涛 2023-04-15
2 .目录 CONTENTS 01 Dolphinscheduler概览 02 Dolphinscheduler架构 03 Dolphinscheduler补数介绍 04 Dolphinscheduler源码讲解 05 05 遇到的问题和参与开源
3 . 01 Dolphinscheduler概览 简介 什么是Dolphinscheduler?
4 . DolphinScheduler简介 1、分布式可扩展 2、开源的 3、 DAG工作流 4、解决数据研发ETL依赖错综复杂的问题 5、支持监控告警等模块
5 . DolphinScheduler部署模式 1、单机模式( Standalone ) 2、伪集群模式(该模式下master、worker、api server 都在同一台机器上) 3、集群模式(cluster) 4、k8s模式( Kubernetes ) https://dolphinscheduler.apache.org/
6 . DolphinScheduler特性 简单易用:可视化 DAG: 用户友好的,通过拖拽定义工作流的,运行时控制工具 模块化操作: 模块化有助于轻松定制和维护。 丰富的使用场景:支持多种任务类型: 支持Shell、MR、Spark、SQL等10余种任务类型,支持跨语言,易于扩展 丰富的工作流操作: 工作流程可以定时、暂停、恢复和停止,便于维护和控制全局和本地参数。 High Reliability:高可靠性: 去中心化设计,确保稳定性。 原生 HA 任务队列支持,提供过载容错能力。 DolphinScheduler 能提供高度稳健的环 境。 High Scalability:高扩展性: 支持多租户和在线资源管理。支持每天10万个数据任务的稳定运行。
7 . 02 Dolphinscheduler架构 架构 Dolphinscheduler的设计架构?
8 . DolphinScheduler 元数据 一个租户下可以有多个用户 一个用户可以有多个项目 一个项目可以有多个工作流定义,每个工作流定义只属于一个项目 一个租户可以被多个工作流定义使用,每个工作流定义必须且只能选择一个租户 一个工作流定义可以有一个或多个定时的配置 一个工作流定义对应多个任务定义 一个工作流定义可以有多个工作流实例, 一个工作流实例对应一个或多个任务实例
9 .DolphinScheduler架构
10 . DolphinScheduler架构介绍 MasterServer 主要负责 DAG 任务切分、任务提交监控,并同时监听其它MasterServer和 WorkerServer的健康状态。 MasterServer服务启动时向Zookeeper注册临时节点,通 过监听Zookeeper临时节点变化来进行容错处理 WorkerServer 主要负责任务的执行和提供日志服务。 WorkerServer服务启动时向Zookeeper注册临 时节点,并维持心跳 Registry 系统中的MasterServer和WorkerServer节点通过注册中心来进行集群管理和容错。另 外系统还基于注册中心进行事件监听和分布式锁 Alert 提供告警相关功能,仅支持单机服务。支持自定义告警插件 API API接口层,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供 请求服务。 接口包括工作流的创建、定义、查询、修改、发布、下线、手工启动、停 止、暂停、恢复、从该节点开始执行等等 UI 系统的前端页面,提供系统的各种可视化操作界面
11 . 03 Dolphinscheduler补数介绍 补数 什么是Dolphinscheduler的补数?
12 . DolphinScheduler补数-串行补数 指运行指定日期范围内的工作流定义,根据补数策略生成对应的工作 流实例,补数策略包括串行补数、并行补数 2 种模式。可以通过页面 选择或者手动输入,日期范围是左关右关区间(startDate <= N <= endDate) 串行补数 指定时间范围内 从开始日期至结束日期依次执行补数,依次生成多条流程实例;点击 运行工作流,选择串行补数模式:例如从7月 9号到7月10号依次执行, 依次在流程实例页面生成两条流程实例。
13 . DolphinScheduler补数-并行补数 并行补数 指定时间范围内,同时进行多天的补数,同时生成多条流程实例。手动输入日 期:手动输入以逗号分割日期格式为 yyyy-MM-dd HH:mm:ss 的日期。点击运 行工作流,选择并行补数模式:例如同时执行7月9号到7月10号的工作流定义, 同时在流程实例页面生成两条流程实例(执行策略为串行时流程实例按照策略执 行)
14 . DolphinScheduler并行补数-并行度 并行度 指在并行补数的模式下,最多并行执行的实例数。例如同时执行7月6号到7月10号 的工作流定义,并行度为2
15 . DolphinScheduler日期选择 Select Date 通过页面选择日期 Enter Date 手动输入
16 . DolphinScheduler补数与定时配置的关系 未配置定时或已配置定时并定时状态下线 已配置定时并定时状态上线 根据所选的时间范围结合定时默认配置(每天0点)进行补数,比如该工作流调 根据所选的时间范围结合定时配置进行补数,比如该工作流调度日期为7月7 度日期为7月7号到7月10号 号到7月10号,配置了定时(每日凌晨5点运行)
17 . 04 Dolphinscheduler源码分析 源码 Dolphinscheduler补数源码?
18 . DolphinScheduler补数执行流程 串行流程 start-process-instance->createCommand->RUN_MODE_SERIAL->insertCommand->MasterSchedulerBootstrap:findCommands->WorkflowExecuteRunnable:handleEvents- >processComplementData->needComplementProcess->finish 并行流程 start-process-instance->createCommand->RUN_MODE_PARALLEL->insertCommand->MasterSchedulerBootstrap:findCommands->WorkflowExecuteRunnable:handleEvents- >processComplementData->needComplementProcess->finish
19 . DolphinScheduler-ExecutorController 请求参数 Select Date Enter Date
20 . DolphinScheduler-ExecutorController 串行补数 RUN_MODE_SERIAL
21 . DolphinScheduler-ExecutorController 并行补数 RUN_MODE_PARALLEL
22 . DolphinScheduler-MasterSchedulerBootstrap MasterSchedulerBootstrap:findCommands监听ds_t_command获取表中的命令,构造ProcessInstance
23 . DolphinScheduler-WorkflowExecuteRunnable WorkflowExecuteRunnable:initTaskQueue-初始化补数对应的时间参数
24 . DolphinScheduler-WorkflowExecuteRunnable WorkflowExecuteRunnable:processComplementData-通过需要补数的时间构造command
25 . DolphinScheduler-WorkflowExecuteRunnable WorkflowExecuteRunnable:createComplementDataCommand-创建下一次需要执行的comand,insert command
26 . 05 遇到的问题和参与开源 1、问题 2、参与开源
27 . DolphinScheduler 一、问题 1、资源管理,如果任务的jar包更新,需要下线所有依赖当前jar包的任务,重新上线 2、任务会出现阻塞,页面无法kill 二、参与开源 1、提升技能水平 2、提高代码质量 3、获得项目经验 4、建立更多的社区人脉 5、参与贡献也有很多的方式, 主要有代码贡献和非代码贡献。非代码贡献主要是有,反馈缺陷;帮助社区其他用户回答相关的问题
28 . THANKS! Ending