海豚调度系列之:认识海豚调度

海豚调度系列之:认识海豚调度

一、海豚调度

  • Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。
  • Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。
  • DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。

二、特性

简单易用:

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

丰富的使用场景:

  • 支持多种任务类型: 支持Shell、MR、Spark、SQL等10余种任务类型,支持跨语言,易于扩展
  • 丰富的工作流操作: 工作流程可以定时、暂停、恢复和停止,便于维护和控制全局和本地参数。

High Reliability:

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

High Scalability:

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

三、建议配置

DolphinScheduler 作为一款开源分布式工作流任务调度系统,可以很好地部署和运行在 Intel 架构服务器及主流虚拟化环境下,并支持主流的Linux操作系统环境

Linux 操作系统版本要求

服务器建议配置

DolphinScheduler 支持运行在 Intel x86-64 架构的 64 位通用硬件服务器平台。对生产环境的服务器硬件配置有以下建议:

生产环境

网络要求

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

客户端 Web 浏览器要求

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

时钟同步

为避免可能影响任务执行的内部集群通信问题,请确保所有集群节点上的时钟与公共时钟源同步,例如使用 Chrony 和/或 NTP。 同步时间确保集群中的每个节点都有相同的时间

四、名次解释

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-master master模块,提供工作流管理和编排服务。
  • dolphinscheduler-worker worker模块,提供任务执行管理服务。
  • dolphinscheduler-alert 告警模块,提供 AlertServer 服务。
  • dolphinscheduler-api web应用模块,提供 ApiServer 服务。
  • dolphinscheduler-common 通用的常量枚举、工具类、数据结构或者基类
  • dolphinscheduler-dao 提供数据库访问等操作。
  • dolphinscheduler-extract extract模块,包含master/worker/alert的sdk
  • dolphinscheduler-service service模块,包含Quartz、Zookeeper、日志客户端访问服务,便于server模块和api模块调用
  • dolphinscheduler-ui 前端模块
相关推荐
最笨的羊羊6 个月前
海豚调度系列之:集群部署(Cluster)
cluster·集群部署·海豚调度系列
最笨的羊羊6 个月前
海豚调度系列之:任务类型——SQL节点
任务类型·海豚调度系列·sql节点
最笨的羊羊6 个月前
海豚调度系列之:任务类型——Apache SeaTunnel
apache·任务类型·seatunnel·海豚调度系列
最笨的羊羊6 个月前
海豚调度系列之:任务类型——SPARK节点
大数据·spark·海豚调度系列·spark节点