🐬 DolphinScheduler 简介
DolphinScheduler 概述
Apache DolphinScheduler 是一个分布式、易扩展的可视化 DAG 工作流任务调度平台。
它主要用于解决大数据任务中复杂的依赖关系问题,使任务调度系统在数据处理流程中开箱即用。
🎯 核心特性:
-
支持 DAG 可视化调度,任务依赖一目了然
-
分布式、高可用设计,易于水平扩展
-
提供任务监控、告警、重试等完善机制
-
支持多种任务类型(Shell、Spark、Hive、Flink、Python 等)
-
丰富的 API 接口,便于与第三方系统集成
DolphinScheduler 核心架构
DolphinScheduler 的核心组件如下图所示(逻辑示意):

🧩 核心角色说明
部署模式
DolphinScheduler 支持三种常见的部署模式,以满足从个人测试到生产集群的不同场景需求。
🖥️ 1️⃣ 单机模式(Standalone)
-
特点:所有服务(Master、Worker、API、UI、Zookeeper、数据库)都在同一进程中。
-
数据库:使用内置 H2 数据库。
-
适用场景:快速体验、学习环境。
🧱 优势:
-
配置最简单,开箱即用
-
无需安装 ZooKeeper 或外部数据库
🧩 2️⃣ 伪集群模式(Pseudo-Cluster)
-
所有组件(Master、Worker、API、Logger)部署在同一台机器上。
-
ZooKeeper 与数据库需独立安装配置。
-
适用于单机测试但想模拟分布式行为的场景。
📘 说明:
-
可以使用 MySQL 代替 H2;
-
各服务仍然通过 ZooKeeper 进行注册与协调;
-
模拟真实集群通信流程。
🕸️ 3️⃣ 集群模式(Cluster)
-
各个服务(Master、Worker、API、Logger)分布在多台服务器上;
-
Master 与 Worker 均可多实例部署,实现高可用与负载均衡;
-
生产环境推荐使用该模式。
💡 特点:
-
具备容错机制(任一节点宕机不会影响整个系统);
-
支持大规模任务并发调度;
-
更适合企业级大数据平台环境。
🧭 DolphinScheduler 入门
安全中心配置
安全中心是 DolphinScheduler 的基础配置模块,主要功能包括:
-
🧑💼 租户管理
-
👥 用户管理
-
🔔 告警实例与告警组管理
-
⚙️ Worker 分组管理
-
🧰 环境管理
-
🎫 令牌管理
-
🧵 Yarn 队列管理
🧵 Yarn 队列管理
当执行 Spark、MapReduce 等任务时,可指定运行的 Yarn 队列。
-
此处的“队列”即为 Yarn 调度器的资源队列;
-
在 DolphinScheduler 中创建队列,仅用于任务选择,不会修改 Yarn 本身配置。
参数说明:
✅ 可根据需要选择是否创建队列,非必选配置。
👤 租户管理
租户 对应 Linux 系统中的用户账号,用于 Worker 执行任务时的身份。
如果 Linux 没有该用户,则任务执行可能失败。
-
可通过配置参数
worker.tenant.auto.create=true自动创建 Linux 用户; -
启用该功能需确保 Worker 节点能 免密执行 sudo 命令。
配置示例:
worker.tenant.auto.create=true
📘 示例租户:
-
租户编码:
atguigu -
默认队列:
default
👥 用户管理
用户是 DolphinScheduler 的登录账号,分为:
参数说明:
4.1.4 🔔 告警实例与告警组管理
告警模块用于任务执行 成功 / 失败 / 超时 时的消息通知。
-
一个告警组可包含多个告警实例;
-
每个实例可选择不同的 告警插件(邮件、钉钉、企业微信、飞书等);
-
告警实例需配置插件参数,如 WebHook 地址、邮箱账号等。
当前示例暂不配置告警,可在生产中启用。
⚙️ Worker 分组管理
用于控制任务在哪些 Worker 节点上运行。
一个 Worker 可属于多个分组。
两种配置方式:
-
修改配置文件
worker.groups=default,test -
Web UI 设置
-
打开【安全中心 → Worker 分组管理】;
-
为指定 Worker 调整分组。
-
默认分组为
default,若无特殊需求可不修改。
🧰 环境管理
用于定义 任务运行环境(如 Python 环境、JDK 版本、依赖变量等)。
默认环境配置文件路径:
$DOLPHINSCHEDULER_HOME/conf/env/dolphinscheduler_env.sh
环境参数说明:
可为不同任务配置不同运行环境,暂不强制配置。
🎫 令牌管理(Token)
令牌用于 API 调用认证,当外部系统(如脚本、数据平台)调用 DolphinScheduler 接口时,需要提供令牌。
-
普通用户通过 Web UI 操作无需令牌;
-
与第三方系统集成(如触发任务、查询状态)时需使用。
示例用途:
curl -H "token: your_token" http://ds-server/api/v1/projects
✅ 总结
💡 DolphinScheduler 是企业级任务调度的核心组件,
通过可视化 DAG 流程与分布式架构,极大提升了任务管理与自动化调度能力。