简介

  • DolphinScheduler以DAG流式的方式将Task组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败暂停Kill任务等操作
  • 通过API方式与第三方系统对接, 一键部署
  • 去中心化的多Master和多Worker
  • 支持暂停恢复操作.支持多租户,更好的应对大数据的使用场景. 支持更多的任务类型,如 spark, hive, mr, python, sub_process, shell
  • 支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线

名词解释

  • DAG : 全称Directed Acyclic Graph,简称DAG。工作流中的Task任务以有向无环图的形式组装起来,从入度为零的节点进行拓扑遍历,直到无后继节点为止。举例如下图:
  • 流程定义:通过拖拽任务节点并建立任务节点的关联所形成的可视化DAG
  • 流程实例:流程实例是流程定义的实例化,可以通过手动启动或定时调度生成,流程定义每运行一次,产生一个流程实例
  • 任务实例:任务实例是流程定义中任务节点的实例化,标识着具体的任务执行状态
  • 任务类型:目前支持有SHELL、SQL、SUB_PROCESS(子流程)、PROCEDURE、MR、SPARK、PYTHON、DEPENDENT(依赖),注意:其中子 SUB_PROCESS 也是一个单独的流程定义,是可以单独启动执行的
  • 调度方式:系统支持基于cron表达式的定时调度手动调度。命令类型支持:启动工作流从当前节点开始执行恢复被容错的工作流恢复暂停流程从失败节点开始执行补数定时重跑暂停停止恢复等待线程。 其中 恢复被容错的工作流 和 恢复等待线程 两种命令类型是由调度内部控制使用,外部无法调用
  • 定时调度:系统采用 quartz 分布式调度器,并同时支持cron表达式可视化的生成
  • 依赖:系统不单单支持 DAG 简单的前驱和后继节点之间的依赖,同时还提供任务依赖节点,支持流程间的自定义任务依赖
  • 优先级 :支持流程实例任务实例的优先级,如果流程实例和任务实例的优先级不设置,则默认是先进先出
  • 邮件告警:支持 SQL任务 查询结果邮件发送,流程实例运行结果邮件告警及容错告警通知
  • 失败策略:对于并行运行的任务,如果有任务失败,提供两种失败策略处理方式,继续是指不管并行运行任务的状态,直到流程失败结束。结束是指一旦发现失败任务,则同时Kill掉正在运行的并行任务,流程失败结束
  • 补数:补历史数据,支持区间并行串行两种补数方式

模块介绍

  • dolphinscheduler-alert 告警模块,提供 AlertServer 服务。
  • dolphinscheduler-api web应用模块,提供 ApiServer 服务。
  • dolphinscheduler-common 通用的常量枚举、工具类、数据结构或者基类
  • dolphinscheduler-dao 提供数据库访问等操作。
  • dolphinscheduler-remote 基于netty的客户端、服务端
  • dolphinscheduler-server MasterServerWorkerServer 服务
  • dolphinscheduler-service service模块,包含Quartz、Zookeeper、日志客户端访问服务,便于server模块和api模块调用
  • dolphinscheduler-ui 前端模块