Apache DolphinScheduler 3.4.3 介绍与选型指南

Apache DolphinScheduler 3.4.3(2026-09-10 发布):DAG 可视化工作流调度平台的去中心化 Master/Worker 架构、多租户与补数依赖等关键特性、官方 Standalone 上手路径(JDK 8/11、ZooKeeper 3.8.0+/MySQL 8.0.33/ETCD 注册中心),以及与 Airflow 3.3.2、Dagster 1.13.26、Azkaban 4.0.0、XXL-Job 3.5.0 的量化选型对比。

Apache DolphinScheduler大数据ApacheDolphinScheduler参数调优OpenJDK2026/10/19

Apache DolphinScheduler 3.4.3 介绍与选型指南

目标:基于官方发布信息讲清 Apache DolphinScheduler 3.4.3 的 DAG 工作流调度定位、去中心化核心架构、关键特性、上手路径与适用边界,并给出与 Airflow、Dagster、Azkaban、XXL-Job 的量化选型对比。本文为认知篇,全部版本号、社区指标与论断均于查询日期 2026-10-19 联网溯源官方文档与 GitHub 仓库,不做本地安装实测。

一、信息基准

本节固定本文全部关键信息的取证口径,后续章节的版本与指标均以此为依据。

二、软件概述

2.1 项目定位与版本

Apache DolphinScheduler(海豚调度)是一个分布式、去中心化的可视化 DAG 工作流任务调度系统:以有向无环图组织数据处理任务(SQL、Shell、Spark、Flink、DataX 等数十种任务类型),提供工作流编排、定时调度、依赖管理、补数回填、告警与多租户能力,定位为大数据平台的"调度中枢"。项目源于中国社区、现属 ASF 顶级项目,双语(中/英)文档是其显著特色。

3.4.3 是当前最新稳定版(GitHub Release 条目 2026-09-10);该版本调度侧新增了"错过触发策略"(schedule missed fire policy,DSIP-107),即调度计划错过预定触发时点后的补偿执行策略(来源:GitHub Release 说明,查询日期 2026-10-19)。

2.2 版本节奏

GitHub Releases 显示近年版本线:

版本发布时间(GitHub Releases 条目)说明
3.3.12025-08-253.3 线
3.3.22025-10-293.3 线补丁
3.4.02026-01-203.4 线首个特性版
3.4.1 / 3.4.2 / 3.4.32026-09-10(atom 条目时间)3.4 线连续补丁(3.4.2 含禁用 HTTP TRACE 的安全强化 DSIP-37,3.4.3 含 missed fire 策略 DSIP-107)

数据来源:https://github.com/apache/dolphinscheduler/releases.atom ,查询日期 2026-10-19。注:atom 条目时间以 GitHub 记录为准,个别版本的原始发布时点以官方下载页与社区公告为准。

关键解读:3.4 线自 2026-01 起进入维护期,补丁集中在调度正确性与安全强化,生产跟进 3.4.3 即可获得当前最新修复。

三、核心架构

3.1 去中心化的多 Master/Worker 模型

DolphinScheduler 的核心理念是去中心化:Master 与 Worker 均可多节点水平部署,无单点 Master——多 Master 通过分布式锁与注册中心协调分片,任一 Master 故障不影响整体调度;Worker 执行器同样多节点负载分摊。各服务(API、Master、Worker、Alert、Logger)无状态可水平扩展,状态集中在外部数据库与注册中心。

3.2 核心服务与职责

  • UI/API 服务:工作流定义、项目与租户管理的可视化与 REST 入口。
  • Master:工作流实例的核心调度者,负责 DAG 拆分、任务派发、容错(failover)与补数执行。
  • Worker:任务执行器,按任务类型调用对应执行器(Shell/SQL/Spark/Flink/DataX 等)并回传状态与日志。
  • Alert:告警服务,对接邮件/脚本等告警通道(以官方告警文档为准)。
  • 注册中心 + 元数据库:服务发现、配置与 master/worker 存活感知(ZooKeeper/ETCD/MySQL),工作流定义与执行历史持久化于关系库(生产为 MySQL/PostgreSQL)。

3.3 调度语义

调度对象自上而下为:项目 → 工作流(DAG)→ 任务节点;任务节点间以依赖(Dependent)连线表达先后约束,支持定时调度(crontab)、事件触发、依赖触发与补数(complement,按历史日期区间回跑);工作流间支持跨 DAG 依赖与子流程。任务运行状态机覆盖提交、运行、重试与失败转移。

四、关键特性

以下特性依据官方文档与 Release 说明归纳(来源:官方部署与功能文档、GitHub Release 说明,查询日期 2026-10-19):

  • 可视化 DAG 编排:拖拽式工作流设计器,任务节点即拖即连,参数与超时/重试策略节点级配置。
  • 丰富任务类型:内置 Shell、SQL(多方言)、Spark、Flink、MR、Python、HTTP、DataX、Sqoop、条件分支、子流程、依赖等数十种任务/控制节点(以官方任务类型文档为准)。
  • 去中心化高可用:多 Master/Worker 无单点,任务 failover 与重试策略内建。
  • 多租户与权限:以 Linux 用户/租户维度隔离运行环境,项目级授权。
  • 补数与回填:按日期区间批量回跑历史数据,数仓重刷场景的核心能力。
  • 错过触发策略(3.4.3 新增):DSIP-107 调度计划 missed fire 的补偿策略可配置。
  • 安全强化(3.4.2 新增):DSIP-37 支持经配置禁用 Jetty 的 HTTP TRACE 请求。
  • Python 网关:提供 PyDolphinScheduler 以 Python 代码定义工作流(默认关闭,可配置开启,见官方 standalone 文档注记)。

五、快速上手

以下路径转述自官方 3.4.3 文档《Standalone 部署》(来源:https://github.com/apache/dolphinscheduler/blob/3.4.3/docs/docs/en/guide/installation/standalone.md ,查询日期 2026-10-19),Standalone 形态内置 H2 内存库与 ZooKeeper Testing Server,用于快速认知。

  1. 前置环境:准备 JDK 1.8 或 11 并配置 JAVA_HOME(官方文档明确标注);准备部署用户并配置免密 sudo(多租户任务切换用户依赖)。

  2. 下载解压:从官方下载页(https://dolphinscheduler.apache.org/en-us/download/ )选择 3.4.3 版本的二进制包下载并解压。

  3. 一键启动 Standalone Server:

bash ./bin/dolphinscheduler-daemon.sh start standalone-server

官方文档说明:解压后切换到具备 sudo 权限的用户执行该脚本即可快速启动;Standalone 默认使用 H2 内存数据库,官方注记建议仅用于少于 20 个工作流的体验场景,Standalone 停止或重启后内存库数据清空。

  1. 登录 UI:浏览器访问 http://localhost:12345/dolphinscheduler/ui,默认用户名/密码为 admin / dolphinscheduler123(官方文档标注)。

  2. 常用运维命令:官方文档列出的同脚本三态命令:

bash ./bin/dolphinscheduler-daemon.sh start standalone-server   # 启动
bash ./bin/dolphinscheduler-daemon.sh stop standalone-server    # 停止
bash ./bin/dolphinscheduler-daemon.sh status standalone-server  # 状态
  1. 验证运行:登录 UI 后创建一个测试项目与 Shell 任务工作流并手动运行,任务实例状态变为成功即完成端到端验证;服务端可用上述 status 命令确认 standalone-server 运行中。

⚠️ 说明:Standalone 为官方最小认知形态;生产部署按官方文档采用伪集群/集群/Kubernetes 形态,元数据库切换 MySQL/PostgreSQL,注册中心切换 ZooKeeper(3.8.0+)/ETCD。

六、适用场景与限制

适用场景:

  • 数据平台的 DAG 调度中枢:Hive/Spark/Flink/DataX 等数仓任务的依赖编排、定时与补数。
  • 多租户共享调度:以租户隔离多团队工作流的平台化运营。
  • 偏好中文文档与本土生态(DataX/SeaTunnel/DolphinScheduler 组合)的团队。
  • 需要可视化运维(拖拽改流、实例级重跑、日志直查)而非性格偏代码化的调度系统。

限制与注意:

  • 社区提交频率与生态插件数量低于 Airflow(见第七章量化数据),冷门集成可能需自研任务类型。
  • Standalone/伪集群形态仅适合体验与小规模,生产级高可用需要完整集群化部署与外部注册中心/数据库运维。
  • JDK 基线为 1.8/11(3.4.3 官方文档口径),与现代栈(JDK 17/21)共存时需规划独立运行环境。
  • 工作流定义以关系库为源,配置即代码(GitOps)流程需借助 PyDolphinScheduler 等工具补齐。

七、同类选型对比

对比口径:均为查询日期 2026-10-19 通过 shields.io 与各项目官方渠道联网实查;社区指标为 shields.io 聚合口径,版本号取官方最新稳定发布。

软件许可GitHub Stars贡献者提交频率最近发版定位差异
Apache DolphinScheduler 3.4.3Apache-2.015k35821/月3.4.3(2026-09-10)去中心化可视化 DAG 调度,多租户 + 补数,中文生态
Apache Airflow 3.3.2Apache-2.047k410998/月v3.3.2Python 代码定义 DAG(DAG as Code),生态与集成面最大
Dagster 1.13.26Apache-2.016k407118/月v1.13.26资产(asset)视角的数据编排,数据质量/血缘内建
Azkaban 4.0.0Apache-2.04.5k1110/月v4.0.0LinkedIn 起源的属性文件式调度,社区已趋停滞
XXL-Job 3.5.0GPL 类许可(以仓库 LICENSE 为准)31k7811/月v3.5.0轻量分布式任务调度(执行器模式),偏业务定时任务

选型建议:

  • 数仓/大数据平台调度中枢,重视可视化运维、补数回填与多租户,DolphinScheduler 对口。
  • 团队 Python 能力强、追求 DAG as Code + 最广集成生态(410 贡献者、998 提交/月的活跃度),Airflow 是默认答案;Airflow 3.x 后亦强化了调度与资产能力。
  • 以数据资产与血缘为中心做现代化数据平台编排,Dagster 的 asset 模型更契合。
  • 仅需业务侧轻量定时任务(HTTP/Bean 执行器、分片广播),XXL-Job 更轻;但注意其许可与大数据调度形态的差异。
  • Azkaban 社区活跃度已明显衰退(4.5k 星、0 提交/月),新建平台不建议作为首选。
  • 兼容矩阵要点:DolphinScheduler 3.4.3 适配 JDK 1.8/11,注册中心 ZooKeeper 3.8.0+/ETCD/MySQL 8.0.33;Airflow 3.x 与 Dagster 为 Python 运行时(版本要求以各自官方文档为准),混部 JVM 任务时需规划执行器环境。

八、参考链接