Apache DolphinScheduler:深入了解大数据调度工具

一、海豚调度介绍

  • Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。

  • Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。

file

二、海豚调度特性

简单易用:

  • 可视化 DAG: 用户友好的,通过拖拽定义工作流的,运行时控制工具
    模块化操作: 模块化有助于轻松定制和维护。

  • 模块化操作: 模块化有助于轻松定制和维护。

丰富的使用场景

  • 支持多种任务类型: 支持Shell、MR、Spark、SQL等10余种任务类型,支持跨语言,易于扩展

  • 丰富的工作流操作: 工作流程可以定时、暂停、恢复和停止,便于维护和控制全局和本地参数。

High Reliability:

  • 高可靠性: 去中心化设计,确保稳定性。原生 HA 任务队列支持,提供过载容错能力。DolphinScheduler 能提供高度稳健的环境。

High Scalability:

  • 高扩展性: 支持多租户和在线资源管理。支持每天10万个数据任务的稳定运行。

三、建议配置

操作系统版本要求
file 服务器建议配置
file 网络要求

Apache DolphinScheduler正常运行提供如下的网络端口配置:

file

客户端Web浏览器要求

Apache DolphinScheduler 推荐 Chrome 以及使用 Chromium 内核的较新版本浏览器访问前端可视化操作界面

四、名词解释

DAG:全称 Directed Acyclic Graph,简称 DAG。工作流中的 Task 任务以有向无环图的形式组装起来,从入度为零的节点进行拓扑遍历,直到无后继节点为止。举例如下图:

file

  1. 流程定义:通过拖拽任务节点并建立任务节点的关联所形成的可视化DAG

  2. 流程实例:流程实例是流程定义的实例化,可以通过手动启动或定时调度生成。每运行一次流程定义,产生一个流程实例

  3. 任务实例:任务实例是流程定义中任务节点的实例化,标识着某个具体的任务

  4. 任务类型:目前支持有 SHELL、SQL、SUB_PROCESS(子流程)、PROCEDURE、MR、SPARK、PYTHON、DEPENDENT(依赖),同时计划支持动态插件扩展,注意:其中 SUB_PROCESS类型的任务需要关联另外一个流程定义,被关联的流程定义是可以单独启动执行的

  5. 调度方式:系统支持基于 cron 表达式的定时调度和手动调度。命令类型支持:启动工作流、从当前节点开始执行、恢复被容错的工作流、恢复暂停流程、从失败节点开始执行、补数、定时、重跑、暂停、停止、恢复等待线程。其中 恢复被容错的工作流 和 恢复等待线程 两种命令类型是由调度内部控制使用,外部无法调用

  6. 定时调度:系统采用 quartz 分布式调度器,并同时支持cron表达式可视化的生成

  7. 依赖:系统不单单支持 DAG 简单的前驱和后继节点之间的依赖,同时还提供任务依赖节点,支持流程间的自定义任务依赖

  8. 优先级:支持流程实例和任务实例的优先级,如果流程实例和任务实例的优先级不设置,则默认是先进先出

  9. 邮件告警:支持 SQL任务 查询结果邮件发送,流程实例运行结果邮件告警及容错告警通知

  10. 失败策略:对于并行运行的任务,如果有任务失败,提供两种失败策略处理方式,继续是指不管并行运行任务的状态,直到流程失败结束。结束是指一旦发现失败任务,则同时Kill掉正在运行的并行任务,流程失败结束

  11. 补数:补历史数据,支持区间并行和串行两种补数方式,其日期选择方式包括日期范围和日期枚举两种

五、模块介绍

  • dolphinscheduler-master master模块,提供工作流管理和编排服务。

  • dolphinscheduler-worker worker模块,提供任务执行管理服务。

  • dolphinscheduler-alert 告警模块,提供 AlertServer 服务。

  • dolphinscheduler-api web应用模块,提供 ApiServer 服务。

  • dolphinscheduler-common 通用的常量枚举、工具类、数据结构或者基类

  • dolphinscheduler-dao 提供数据库访问等操作。

  • dolphinscheduler-remote 基于 netty 的客户端、服务端

  • dolphinscheduler-service service模块,包含Quartz、Zookeeper、日志客户端访问服务,便于server模块和api模块调用

  • dolphinscheduler-ui 前端模块

六、功能介绍

1.项目首页

在项目管理页面点击项目名称链接,进入项目首页,如下图所示,项目首页包含该项目的任务状态统计、流程状态统计、工作流定义统计。这几个指标的说明如下

  • 任务状态统计:在指定时间范围内,统计任务实例中状态为提交成功、正在运行、准备暂停、暂停、准备停止、停止、失败、成功、需要容错、kill、等待线程的个数

  • 流程状态统计:在指定时间范围内,统计工作流实例中状态为提交成功、正在运行、准备暂停、暂停、准备停止、停止、失败、成功、需要容错、kill、等待线程的个数

  • 工作流定义统计:统计用户创建的工作流定义及管理员授予该用户的工作流定义

file

2.工作流定义

创建工作流定义

  • 点击项目管理->工作流->工作流定义,进入工作流定义页面,点击“创建工作流”按钮,进入工作流DAG编辑页面,如下图所示:

file

工具栏中拖拽 到画板中,新增一个Shell任务,如下图所示:

file

添加Shell任务的参数设置:

  • 填写“节点名称”,“描述”,“脚本”字段;

  • “运行标志”勾选“正常”,若勾选“禁止执行”,运行工作流不会执行该任务;

  • 选择“任务优先级”:当 worker 线程数不足时,级别高的任务在执行队列中会优先执行,相同优先级的任务按照先进先出的顺序执行;

  • 超时告警(非必选):勾选超时告警、超时失败,填写“超时时长”,当任务执行时间超过超时时长,会发送告警邮件并且任务超时失败;

  • 资源(非必选):资源文件是资源中心->文件管理页面创建或上传的文件,如文件名为 test.sh,脚本中调用资源命令为 sh test.sh。注意调用需要使用资源的全路径;

  • 自定义参数(非必填);

  • 点击"确认添加"按钮,保存任务设置。

配置任务之间的依赖关系:

  • 点击任务节点的右侧加号连接任务;如下图所示,任务 Node_B 和任务 Node_C 并行执行,当任务 Node_A 执行完,任务 Node_B、Node_C 会同时执行。

file

实时任务的依赖关系

  • 若DAG中包含了实时任务的组件,则实时任务的关联关系显示为虚线,在执行工作流实例的时候会跳过实时任务的执行

file

删除依赖关系:点击右上角"箭头"图标,选中连接线,点击右上角"删除"图标,删除任务间的依赖关系。

file

保存工作流定义:点击”保存“按钮,弹出"设置DAG图名称"弹框,如下图所示,输入工作流定义名称,工作流定义描述,设置全局参数(选填,参考全局参数),点击"添加"按钮,工作流定义创建成功。

file

执行策略

  • 并行:如果对于同一个工作流定义,同时有多个工作流实例,则并行执行工作流实例。

  • 串行等待:如果对于同一个工作流定义,同时有多个工作流实例,则并行执行工作流实例。

  • 串行抛弃:如果对于同一个工作流定义,同时有多个工作流实例,则抛弃后生成的工作流实例并杀掉正在跑的实例。

  • 串行优先:如果对于同一个工作流定义,同时有多个工作流实例,则按照优先级串行执行工作流实例。

file

工作流定义操作功能

点击项目管理->工作流->工作流定义,进入工作流定义页面,如下图所示:

file

工作流定义列表的操作功能如下:

  • 编辑:只能编辑"下线"的工作流定义。工作流DAG编辑同创建工作流定义。

  • 上线:工作流状态为"下线"时,上线工作流,只有"上线"状态的工作流能运行,但不能编辑。

  • 下线:工作流状态为"上线"时,下线工作流,下线状态的工作流可以编辑,但不能运行。

  • 运行:只有上线的工作流能运行。运行操作步骤见运行工作流

  • 定时:只有上线的工作流能设置定时,系统自动定时调度工作流运行。创建定时后的状态为"下线",需在定时管理页面上线定时才生效。定时操作步骤见工作流定时

  • 定时管理:定时管理页面可编辑、上线/下线、删除定时。

  • 删除:删除工作流定义。在同一个项目中,只能删除自己创建的工作流定义,其他用户的工作流定义不能进行删除,如果需要删除请联系创建用户或者管理员。

  • 下载:下载工作流定义到本地。

  • 树形图:以树形结构展示任务节点的类型及任务状态,如下图所示:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DolphinScheduler社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值