DolphinScheduler 部署与架构是什么
典型架构由 API 服务、Master(负责 DAG 拆解与调度分发)、Worker(执行任务并上报状态)、注册中心(ZooKeeper,负责选主与心跳感知)以及元数据库(PostgreSQL 或 MySQL,存流程定义与实例记录)组成,另有资源中心存放脚本与文件。standalone 单机模式内含注册中心与数据库,适合快速体验与功能验证,不适合承载生产任务量。
基本信息
| API 服务 | 对外提供界面与接口,承担用户操作入口 |
|---|---|
| Master | 工作流实例调度、任务分发、容错处理 |
| Worker | 实际执行任务并上报状态,可按分组隔离资源 |
| 注册中心 | ZooKeeper 负责选主与心跳,节点异常时触发故障转移 |
| 元数据库 | PostgreSQL 或 MySQL,保存定义与实例记录 |
| 部署模式 | standalone(单机体验)、伪集群、集群三种 |
| 运行前提 | 需要合适的 JDK 版本与一致的时区配置 |
典型使用场景
- 本地体验:单机模式快速跑通一个 Shell 任务,验证调度与界面
- 生产部署:Master 与 Worker 分开部署并按任务量横向扩容
- 环境隔离:开发、测试、生产各自独立部署一套,避免互相干扰
- 资源隔离:按 Worker 分组把重型任务与轻量任务分开
- 高可用:多 Master 与多 Worker 加 ZooKeeper,单点故障时自动转移
单机快速体验
单机快速体验
tar -xzf apache-dolphinscheduler-*-bin.tar.gz
cd apache-dolphinscheduler-*-bin
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
./bin/dolphinscheduler-daemon.sh start standalone-server
# 默认端口 12345,访问 http://<host>:12345/dolphinscheduler部署后核对
部署后核对
# 确认各服务进程与健康状态
./bin/dolphinscheduler-daemon.sh status standalone-server
# 查看后端日志,重点看注册中心连接与数据库连接
tail -n 100 logs/dolphinscheduler-api.log
# 核对系统时区与 JDK 版本,避免日期参数错一天
date; java -version组件与故障表现
| 组件 | 职责 | 异常表现 |
|---|---|---|
| API 服务 | 界面与接口入口 | 页面打不开、操作无响应 |
| Master | 调度与任务分发 | 任务长时间等待不被分发 |
| Worker | 执行任务 | 任务卡在等待执行、心跳异常 |
| 注册中心 | 选主与心跳 | 节点假死、故障转移不触发 |
| 元数据库 | 保存定义与实例 | 界面能打开但数据丢失或写入失败 |
Worker 心跳异常会表现为任务分发不出去:任务既不失败也不执行,长时间停在等待状态,排查时先看 Worker 与注册中心的连接,而不是先看任务本身。
standalone 模式内含注册中心与数据库,只适合体验:任务量一上来就会出现执行阻塞与状态不一致,生产环境应使用集群模式并规划 Master 与 Worker 资源。