首页/数据/数据工程与 ETL 速查/DolphinScheduler 部署与架构

DolphinScheduler 部署与架构

典型架构:API 服务、Master(DAG 拆解与调度)、Worker(任务执行)、注册中心(ZooKeeper)与元数据库(PostgreSQL/MySQL),另有资源中心存放脚本与文件。

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 资源。

易错点

  • 把 standalone 当生产环境使用,任务量增加后执行阻塞、状态混乱
  • 时区与 JDK 版本不匹配,内置日期参数取到前一天或后一天
  • Worker 心跳异常未纳入监控,任务长期停在等待状态无人发现
  • 元数据库不做备份,流程定义与实例记录丢失后无法恢复
  • 所有任务共用一个 Worker 分组,重型任务把资源占满拖垮其他任务

数据来源与参考

  • Apache DolphinScheduler 官方文档:架构设计与部署模式(standalone/伪集群/集群)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌