DolphinScheduler工作流调度完整指南:30分钟搭好数仓ETL链路
2026/9/12 16:42:08 网站建设 项目流程

DolphinScheduler工作流调度完整指南:30分钟搭好数仓ETL链路

【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler

Apache DolphinScheduler 是一个分布式、可可视化编排的 DAG 工作流任务调度平台,把"抽取—清洗—加载"这类数仓作业变成画布上拖一拖就能跑起来的流程,并自带定时触发、失败重试、补数据与告警能力。如果你正被散落在各个 crontab 里的 ETL 脚本折磨,这篇文章给出一条从部署到上线的实操路径,全部基于项目真实目录与文档,不绕弯子。

数仓每日任务,真实痛点长什么样

先描述一个常见场景:凌晨两点的批处理由五六个 shell 脚本串起来——先抽业务库,再跑 Spark 清洗,最后加载进 Hive。顺序全靠注释约定,某个脚本挂了要人肉重跑;想加个依赖或改个时间,就得翻半天目录。这种"脚本接力"模式的三个硬伤很典型:

痛点脚本 + crontabDolphinScheduler
依赖关系写在注释里,改了容易漏画布上的连线,一眼可见
失败处理人工发现、人工重跑可配置自动重试与告警
历史追溯翻服务器上的日志平台内查实例与运行记录

DolphinScheduler 的定位就是替掉上面这张表的左边一列:它用一张有向无环图(DAG,可以理解为"任务之间的先后依赖图")来描述整个流程,每个节点是一类具体任务,节点之间的箭头就是依赖。

DolphinScheduler 五分钟部署步骤

最快的起步方式是用 Docker 拉起整套服务(包含调度核心与 Web 控制台):

git clone https://gitcode.com/GitHub_Trending/dol/dolphinscheduler cd dolphinscheduler/deploy/docker docker compose up -d

容器起来后,浏览器访问 http://localhost:12345 即可进入控制台,默认账号密码是admin/dolphinscheduler123(生产环境请务必先改密)。这套方式适合验证和开发;正式使用时还有 Standalone(单机)、伪集群、真集群以及 Kubernetes 部署等选项,可按规模选择,单机部署的细节见 docs/docs/zh/guide/installation/standalone.md。

登录后的首页会直接给出任务与工作流实例的状态分布,相当于整个平台的体检仪表盘:

数据源接入:让 SQL 任务直连你的仓库

编排前先建数据源。在左侧导航的 Datasource 页面新建连接,填入类型、主机、端口和库名,点 "Test Connect" 验证即可。平台内置的数据源插件覆盖了 MySQL、PostgreSQL、Hive、ClickHouse、Doris、Snowflake 等主流类型(源码里共有二十多个数据源插件模块,见 dolphinscheduler-datasource-plugin/ 目录),绝大多数数仓组件都能直连,无需自写驱动。

ETL流程编排:把五个环节画成一张图

进入某个项目的工作流定义页面,左侧工具栏列出了所有可用任务类型(30 余种插件,源码位于 dolphinscheduler-task-plugin/ 目录)。一条典型的数仓链路可以拆成五类节点:

  • Shell:数据文件预处理、环境检查
  • DataX:从业务库批量抽取(对应文档 docs/docs/zh/guide/task/datax.md)
  • Spark SQL / Flink:清洗与转换
  • Hive CLI / SQL:加载进数仓
  • HTTP:完成后向 IM 或监控服务发通知

从工具栏把节点拖进画布,用箭头连出先后关系即可。画布右下角还有缩略图,方便确认整体形态:

节点内部按各自的配置面板填写。比如 Spark SQL 节点要指定程序类型、SQL 脚本和 driver/executor 资源;DataX 节点则贴入 JSON 格式的 reader/writer 配置,并需要在执行机配置好 DataX 的 Home 路径:

连好线后给整个工作流挂一个定时调度(例如每天 02:00),再保存上线。此后每个节点是否就绪、被哪个依赖卡住,都能在实例详情页里看到。

失败重试与监控:上线之后怎么省心

ETL 真正要命的是"挂了没人知道"。平台侧有三个可以马上启用的机制:

  1. 任务重试:在节点配置里设置失败重试次数与间隔,偶发网络抖动通常能自愈,不必等人。
  2. 告警:配置邮件、钉钉、企微、飞书等渠道,关键任务失败第一时间推送;各渠道的参数示例在 docs/docs/zh/guide/alert/ 下都有说明。
  3. 监控看板:Monitor 页面按租户维度统计任务与工作流实例的成功/失败数量,异常趋势一眼可辨,细节文档见 docs/docs/zh/guide/monitor.md。

另外,若某天需要补跑历史分区(比如数仓上游延迟了两天),可以在实例页针对指定时间范围触发补数据,而不必临时改脚本——这是"脚本接力"模式最难复制的一点。

延伸:下一步可以做什么

  • 想动手前,先通读 docs/docs/zh/guide/task/ 下的任务文档,重点看 DataX 与 SQL 两篇,配合本教程的编排步骤足够跑通第一条链路。
  • 部署到多机时,对照 deploy/ 目录下的 Kubernetes Chart 与 Terraform 模板,按团队现有的云环境二选一。

把第一批 ETL 流程从 crontab 迁到 DolphinScheduler 之后,依赖、时间、责任都会落在同一张画布上——剩下的工作,就是继续往里搬任务。

【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询