官方文档地址:https://dolphinscheduler.apache.org/zh-cn/docs/3.1.8
因为官方文档经常出现文档桑、图片加载缓慢、中文名对应关系较差,且存在部分链接异常的情况,所以我将其重新整理、排版以方便阅读。
同时做了部分优化,增加了一些注解,补充了中英文对应关系。
3 功能介绍
3.1 首页
Apache DolphinScheduler 首页可让您查看用户所有项目的任务状态统计、工作流状态统计和项目统计。 这是观察整个系统状态以及深入各个进程以检查任务和任务日志的每个状态的最佳方式。
3.2 项目管理
3.2.1 项目列表
3.2.1.1 创建项目
点击 “项目管理” 进入项目管理页面,点击 “创建项目” 按钮,输入项目名称,项目描述,点击 “提交”,创建新的项目。
3.2.1.2 项目首页
在项目管理页面点击项目名称链接,进入项目首页,如下图所示,项目首页包含该项目的 Task State Statistics(任务状态统计)、Process State Statistics(流程状态统计)、Process Definition Statistics(工作流定义统计)。这几个指标的说明如下
-
任务状态统计:在指定时间范围内,统计任务实例中状态为 SUBMITTED_SUCCESS(提交成功)、RUNNING_EXECUTION(正在运行)、READU_PAUSE(准备暂停)、PAUSE(暂停)、READY_STOP(准备停止)、STOP(停止)、FAILURE(失败)、SUCCESS(成功)、NEED_FAULT_TOLERANCE(需要容错)、KILL(杀掉的任务)、WAITING_THREAD(等待线程的个数)
-
流程状态统计:在指定时间范围内,统计工作流实例中状态 SUBMITTED_SUCCESS(提交成功)、RUNNING_EXECUTION(正在运行)、READU_PAUSE(准备暂停)、PAUSE(暂停)、READY_STOP(准备停止)、STOP(停止)、FAILURE(失败)、SUCCESS(成功)、NEED_FAULT_TOLERANCE(需要容错)、KILL(杀掉的任务)、WAITING_THREAD(等待线程的个数)
-
工作流定义统计:统计用户创建的工作流定义及管理员授予该用户的工作流定义
3.2.2 工作流定义
3.2.2.1 创建工作流定义
【Step 1】点击 Project(项目管理) -> Workflow(工作流) -> Workflow Definition(工作流定义),进入工作流定义页面,点击 “Create Workflow(创建工作流)” 按钮,进入 工作流DAG编辑 页面,如下图所示:
【Step 2】工具栏中拖拽 到画板中,新增一个 Shell 任务,如下图所示:
【Step 3】添加 Shell 任务的参数设置:
- 填写 “节点名称”、“描述”、“脚本” 字段
- “运行标志” 勾选 “正常”,若勾选 “禁止执行”,运行工作流不会执行该任务
- 选择 “任务优先级”:当 worker 线程数不足时,级别高的任务在执行队列中会优先执行,相同优先级的任务按照先进先出的顺序执行
- 超时告警(非必选):勾选超时告警、超时失败,填写 “超时时长”,当任务执行时间超过 超时时长,会发送告警邮件并且任务超时失败
- 资源(非必选):资源文件是资源中心 -> 文件管理页面创建或上传的文件,如文件名为
test.sh
,脚本中调用资源命令为sh test.sh
。注意调用需要使用资源的全路径 - 自定义参数(非必填)
- 点击 “确认添加” 按钮,保存任务设置
【Step 4】配置任务之间的依赖关系:
点击任务节点的右侧加号连接任务。如下图所示。任务 Node_B 和任务 Node_C 并行执行,当任务 Node_A 执行完,任务 Node_B、Node_C 会同时执行。
实时任务的依赖关系:若 DAG 中包含了实时任务的组件,则实时任务的关联关系显示为虚线,在执行工作流实例的时候会跳过实时任务的执行。
删除依赖关系:点击右上角"箭头"图标 ,选中连接线,点击右上角"删除"图标
,删除任务间的依赖关系。
【Step 5】保存工作流定义:点击 ”保存“ 按钮,弹出 “设置DAG图名称” 弹框,如下图所示,输入工作流定义名称,工作流定义描述,设置全局参数(选填,参考全局参数),点击 “添加” 按钮,工作流定义创建成功。
其他类型任务,请参考 任务节点类型和参数设置。
Process execute type(执行策略):
- 并行:如果对于同一个工作流定义,同时有多个工作流实例,则并行执行工作流实例。
- 串行等待:如果对于同一个工作流定义,同时有多个工作流实例,则串行执行工作流实例。
- 串行抛弃:如果对于同一个工作流定义,同时有多个工作流实例,则抛弃后生成的工作流实例并杀掉正在跑的实例。
- 串行优先:如果对于同一个工作流定义,同时有多个工作流实例,则按照优先级串行执行工作流实例。
3.2.2.2 工作流定义操作功能
点击 Project(项目管理)-> Workflow(工作流)-> Workflow Definition(工作流定义),进入工作流定义页面,如下图所示:
工作流定义列表的操作功能如下:
- 编辑: 只能编辑 “下线” 的工作流定义。工作流 DAG 编辑同创建工作流定义。
- 上线: 工作流状态为 “下线” 时,上线工作流,只有"上线"状态的工作流能运行,但不能编辑。
- 下线: 工作流状态为"上线"时,下线工作流,下线状态的工作流可以编辑,但不能运行。
- 运行: 只有上线的工作流能运行。运行操作步骤见运行工作流
- 定时: 只有上线的工作流能设置定时,系统自动定时调度工作流运行。创建定时后的状态为"下线",需在定时管理页面上线定时才生效。定时操作步骤见工作流定时
- 定时管理: 定时管理页面可编辑、上线/下线、删除定时。
- 删除: 删除工作流定义。在同一个项目中,只能删除自己创建的工作流定义,其他用户的工作流定义不能进行删除,如果需要删除请联系创建用户或者管理员。
- 下载: 下载工作流定义到本地。
- 树形图: 以树形结构展示任务节点的类型及任务状态,如下图所示:
3.2.2.3 运行工作流
点击 Project(项目管理)-> Workflow(工作流)-> Workflow Definition(工作流定义),进入工作流定义页面,如下图所示,点击 “上线” 按钮
,上线工作流。
点击 ”运行“ 按钮,弹出启动参数设置弹框,如下图所示,设置启动参数,点击弹框中的"运行"按钮,工作流开始运行,工作流实例页面生成一条工作流实例。
工作流运行参数说明:
-
失败策略:当某一个任务节点执行失败时,其他并行的任务节点需要执行的策略。”继续“表示:某一任务失败后,其他任务节点正常执行;”结束“表示:终止所有正在执行的任务,并终止整个流程。
-
通知策略:当流程结束,根据流程状态发送流程执行信息通知邮件,包含任何状态都不发,成功发,失败发,成功或失败都发。
-
流程优先级:流程运行的优先级,分五个等级:最高(HIGHEST),高(HIGH),中(MEDIUM),低(LOW),最低(LOWEST)。当 master 线程数不足时,级别高的流程在执行队列中会优先执行,相同优先级的流程按照先进先出的顺序执行。
-
Worker 分组:该流程只能在指定的 worker 机器组里执行。默认是 Default,可以在任一 worker 上执行。
-
通知组:选择通知策略||超时报警||发生容错时,会发送流程信息或邮件到通知组里的所有成员。
-
启动参数: 在启动新的流程实例时,设置或覆盖全局参数的值。
-
补数:指运行指定日期范围内的工作流定义,根据补数策略生成对应的工作流实例,补数策略包括串行补数、并行补数 2 种模式。
- 日期可以通过页面选择或者手动输入,日期范围是左关右关区间 (startDate <= N <= endDate)
- 串行补数:指定时间范围内,从开始日期至结束日期依次执行补数,依次生成多条流程实例;点击运行工作流,选择串行补数模式:例如从7月 9号到7月10号依次执行,依次在流程实例页面生成两条流程实例。
- 并行补数: 指定时间范围内,同时进行多天的补数,同时生成多条流程实例。手动输入日期:手动输入以逗号分割日期格式为
yyyy-MM-dd HH:mm:ss
的日期。点击运行工作流,选择并行补数模式:例如同时执行7月9号到7月10号的工作流定义,同时在流程实例页面生成两条流程实例(执行策略为串行时流程实例按照策略执行)。
- 并行度:是指在并行补数的模式下,最多并行执行的实例数。例如同时执行7月6号到7月10号的工作流定义,并行度为2,那么流程实例为:
- 依赖模式:是否触发下游依赖节点依赖到当前工作流的工作流实例的补数(要求当前补数的工作流实例的定时状态为已上线,只会触发下游直接依赖到当前工作流的补数)。
-
日期选择:
- 通过页面选择日期:
- 手动输入:
-
补数与定时配置的关系:
未配置定时
或已配置定时并定时状态下线
:根据所选的时间范围结合定时默认配置(每天0点)进行补数,比如该工作流调度日期为 7 月 7 号到 7 月 10 号,流程实例为:
已配置定时并定时状态上线
:根据所选的时间范围结合定时配置进行补数,比如该工作流调度日期为7月7号到7月10号,配置了定时(每日凌晨5点运行),流程实例为:
3.2.2.4 单独运行任务
【Step 1】右键选中任务,点击 “启动” 按钮(只有已上线的任务才能点击运行)
【Step 2】弹出启动参数设置弹框,参数说明同运行工作流
3.2.2.5 工作流定时
【Step 1】创建定时:点击项目管理->工作流->工作流定义,进入工作流定义页面,上线工作流,点击"定时"按钮,弹出定时参数设置弹框,如下图所示:
【Step 2】选择起止时间。在起止时间范围内,定时运行工作流;不在起止时间范围内,不再产生定时工作流实例。
【Step 3】添加一个每隔 5 分钟执行一次的定时,如下图所示:
【Step 4】失败策略、通知策略、流程优先级、Worker 分组、通知组、收件人、抄送人同工作流运行参数。
【Step 5】点击"创建"按钮,创建定时成功,此时定时状态为"下线",定时需上线才生效。
【Step 6】定时上线:点击"定时管理"按钮
,进入定时管理页面,点击"上线"按钮,定时状态变为"上线",如下图所示,工作流定时生效。
3.2.2.6 导入工作流
点击项目管理->工作流->工作流定义,进入工作流定义页面,点击"导入工作流"按钮,导入本地工作流文件,工作流定义列表显示导入的工作流,状态为下线。
3.2.3 工作流实例
3.2.3.1 查看工作流实例
【Step 1】点击项目管理->工作流->工作流实例,进入工作流实例页面,如下图所示:
【Step 2】点击工作流名称,进入DAG查看页面,查看任务执行状态,如下图所示。
3.2.3.2 查看任务日志
【Step 1】进入工作流实例页面,点击工作流名称,进入DAG查看页面,双击任务节点,如下图所示:
【Step 2】点击"查看日志",弹出日志弹框,如下图所示,任务实例页面也可查看任务日志,参考任务查看日志。
3.2.3.3 查看任务历史记录
【Step 1】点击项目管理->工作流->工作流实例,进入工作流实例页面,点击工作流名称,进入工作流 DAG 页面
【Step 2】双击任务节点,如下图所示,点击"查看历史",跳转到任务实例页面,并展示该工作流实例运行的任务实例列表
3.2.3.4 查看运行参数
【Step 1】点击项目管理->工作流->工作流实例,进入工作流实例页面,点击工作流名称,进入工作流 DAG 页面;
【Step 2】点击左上角图标
,查看工作流实例的启动参数;点击图标,查看工作流实例的全局参数和局部参数,如下图所示:
3.2.3.5 工作流实例操作功能
点击项目管理->工作流->工作流实例,进入工作流实例页面,如下图所示:
- 编辑: 只能编辑 成功/失败/停止 状态的流程。点击"编辑"按钮或工作流实例名称进入 DAG 编辑页面,编辑后点击"保存"按钮,弹出保存 DAG 弹框,如下图所示,修改流程定义信息,在弹框中勾选"是否更新工作流定义",保存后则将实例修改的信息更新到工作流定义;若不勾选,则不更新工作流定义。
-
重跑: 重新执行已经终止的流程。
-
恢复失败: 针对失败的流程,可以执行恢复失败操作,从失败的节点开始执行。
-
停止: 对正在运行的流程进行停止操作,后台会先
kill
worker 进程,再执行kill -9
操作 -
暂停: 对正在运行的流程进行暂停操作,系统状态变为等待执行,会等待正在执行的任务结束,暂停下一个要执行的任务。
-
恢复暂停: 对暂停的流程恢复,直接从暂停的节点开始运行
-
删除: 删除工作流实例及工作流实例下的任务实例
-
甘特图: Gantt 图纵轴是某个工作流实例下的任务实例的拓扑排序,横轴是任务实例的运行时间,如图示:
3.2.4 任务实例
3.2.4.1 批量任务实例
点击项目管理->工作流->任务实例,进入任务实例页面,如下图所示,点击工作流实例名称,可跳转到工作流实例 DAG 图查看任务状态:
查看日志:点击操作列中的“查看日志”按钮,可以查看任务执行的日志情况。
3.2.4.2 实时任务实例
- 切换到实时任务实例页面,如下图所示:
- SavePoint:点击操作列中的SavePoint按钮,可以进行实时任务的SavePoint。
- Stop:点击操作列中的Stop按钮,可以停止该实时任务。
3.2.5 任务定义
3.2.5.1 批量任务定义
批量任务定义允许您在基于任务级别而不是在工作流中操作修改任务。再此之前,我们已经有了工作流级别的任务编辑器,你可以在 工作流定义 单击特定的工作流,然后编辑任务的定义。当您想编辑特定的任务定义但不记得它属于哪个工作流时,这是令人沮丧的。所以我们决定在 任务
菜单下添加 任务定义
视图。
在该视图中,您可以通过单击 操作
列中的相关按钮来进行创建、查询、更新、删除任务定义。最令人兴奋的是您可以通过通配符进行全部任务查询,当您只 记得任务名称但忘记它属于哪个工作流时是非常有用的。也支持通过任务名称结合使用 任务类型
或 工作流程名称
进行查询。
3.2.5.2 实时任务定义
实时任务定义在工作流定义中创建,在任务定义页面可以进行修改和执行。
点击实时任务执行,检查执行参数后点击确认,即可提交实时任务。