DolphinScheduler
更新时间:2026-08-12
DolphinScheduler是一个分布式、易扩展的可视化工作流任务调度平台,致力于解决数据处理流程中复杂的任务依赖关系,支持以低代码拖拽的方式构建高性能工作流。BMR集成的DolphinScheduler版本为3.2.0。
简介
DolphinScheduler采用分布式去中心化架构设计,具备高可用、高性能和水平扩展能力,支持每日千万级任务调度。
用户可通过Web UI以可视化拖拽方式定义工作流(DAG),管理任务依赖关系,并对工作流进行定时调度、暂停、恢复、补数等操作。
核心架构
DolphinScheduler采用去中心化的多Master多Worker架构,主要包含以下组件:
| 组件 | 职责 |
|---|---|
| MasterServer | 负责DAG任务切分、任务提交、任务监控,并监听其他Master和Worker节点的健康状态。采用分布式无中心设计。 |
| WorkerServer | 负责任务的执行和提供日志服务。采用分布式无中心设计,支持多线程并行处理。 |
| API Server | 提供RESTful API接口,处理前端UI层的请求,支持与第三方系统集成。 |
| Alert Server | 提供告警服务,支持邮件、钉钉、企业微信等多种告警方式。 |
| ZooKeeper | 负责Master和Worker节点的集群管理、服务注册发现及容错处理。 |
| UI | 前端可视化操作界面,用户通过浏览器进行工作流的定义、调度和监控。 |
主要特性
- 可视化工作流编排:通过拖拽方式创建DAG工作流,直观展示任务依赖关系。
- 去中心化架构:多Master多Worker对等部署,原生支持水平扩展,无单点故障。
- 丰富的任务类型:内置多种任务插件,覆盖大数据处理、数据同步、机器学习等场景。
- 多租户支持:完善的权限管理,支持多项目、多用户协作,支持项目级、资源级和数据源级权限控制。
- 多种部署方式:支持Standalone、Cluster、Docker和Kubernetes部署。
- 多种使用方式:支持Web UI、Python SDK和Open API进行工作流创建和管理。
- 工作流版本管理:工作流和工作流实例均支持版本控制。
- 灵活的状态控制:支持对工作流和任务随时进行暂停、停止和恢复操作。
- 补数支持:支持通过Web UI执行历史数据补跑。
- 云原生支持:支持Kubernetes部署,支持多云/多数据中心工作流编排。
支持的任务类型
DolphinScheduler 3.2.0支持以下任务类型:
通用任务
| 任务类型 | 说明 |
|---|---|
| Shell | 执行Shell脚本。 |
| SQL | 执行SQL语句,支持MySQL、PostgreSQL、Hive、ClickHouse等数据源。 |
| Python | 执行Python脚本。 |
| Java | 执行Java程序。 |
| HTTP | 发送HTTP请求。 |
| Procedure | 执行存储过程。 |
| Sub Process | 引用其他工作流作为子流程节点。 |
| Dependent | 依赖检查节点,等待上游工作流/任务完成后触发。 |
| Conditions | 条件分支节点,根据上游任务结果选择下游分支。 |
| Switch | 条件判断节点,根据条件表达式选择执行分支。 |
大数据任务
| 任务类型 | 说明 |
|---|---|
| Spark | 提交Spark作业,支持Spark SQL和Spark Jar。 |
| Flink | 提交Flink作业,支持Flink SQL和Flink Jar。 |
| MapReduce | 提交MapReduce作业。 |
| HiveCLI | 通过Hive CLI执行HiveSQL。 |
| SeaTunnel | 调用SeaTunnel数据集成引擎。 |
| DataX | 调用DataX执行异构数据源间的数据同步。 |
| Sqoop | 在HDFS和关系型数据库之间进行数据导入导出。 |
机器学习任务
| 任务类型 | 说明 |
|---|---|
| MLflow | 调用MLflow进行模型训练和管理。 |
| PyTorch | 提交PyTorch训练任务。 |
| Jupyter | 执行Jupyter Notebook。 |
| Kubeflow | 调用Kubeflow机器学习流水线。 |
其他任务
| 任务类型 | 说明 |
|---|---|
| K8s | 在Kubernetes上启动Pod执行任务。 |
| DataQuality | 执行数据质量检查。 |
| Remote Shell | 远程执行Shell命令。 |
支持的数据源
DolphinScheduler提供统一的数据源管理,支持连接以下数据源类型:
- MySQL
- PostgreSQL
- Hive
- ClickHouse
- Oracle
- SQL Server
- Trino(Presto)
- 更多数据源可通过插件扩展
更多参考
更多详细内容可参考 DolphinScheduler官网
注意事项
- 当前BMR集成的DolphinScheduler不支持Kerberos认证。如集群开启了Kerberos,DolphinScheduler将无法直接访问受Kerberos保护的服务(如HDFS、Hive、YARN等)。
评价此篇文章
