DolphinScheduler 可视化工作流任务调度:30分钟从部署到跑通第一个任务
2026/9/12 1:57:01 网站建设 项目流程

DolphinScheduler 可视化工作流任务调度:30分钟从部署到跑通第一个任务

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

凌晨两点,一批夜间 ETL 卡在第 7 个节点,没人说得清是哪个上游断了、该重启谁,只能一个个脚本手工补跑。你需要的是一套能把任务依赖画成 DAG、可视化编排的分布式任务调度系统——Apache DolphinScheduler。

痛点:调度到底难在哪

  • 任务之间靠脚本和口头约定串联,依赖关系没人说得清,一挂就不知道断在哪。
  • 同一个流程每天手工触发,没有统一的定时、重试和失败告警,出错全靠人盯。
  • 想加一步、改个顺序,只能改代码重新发布,流程本身没有可视化入口。

项目速写:DolphinScheduler 是什么

Apache DolphinScheduler 是一个分布式、可扩展的可视化 DAG 工作流调度平台,帮数据团队把"谁先跑、谁后跑、失败了怎么办"用拖拽画布固化下来,开箱即用。它适合数据开发、运维和平台团队,核心特性:

  • 去中心化架构,master/worker 可横向扩展,原生高可用
  • 拖拽式 DAG 画布,支持 Shell、SQL、Spark、Flink、Python 等 40 多种任务
  • 内置定时调度、依赖调度、失败重试与告警
  • 多租户、队列、安全权限控制
  • 提供 Standalone、伪集群、Kubernetes 多种部署方式

官方文档入口:docs/,中文快速上手可看 standalone 部署文档。

部署:Standalone 模式最快上手

Standalone 把所有组件打进一个进程,用内存 H2 存元数据,适合先把流程跑通,不建议长期跑生产(工作流控制在 20 个以内)。前置条件清单:

  • JDK 1.8 或 11,并配置好JAVA_HOME
  • 一台 Linux 机器(root 可操作)
  • 一份 DolphinScheduler 二进制包apache-dolphinscheduler-*-bin.tar.gz

1. 建用户并配置 sudo 免密。任务会以sudo -u 某用户 -i切换身份执行,所以部署用户必须免密:

useradd dolphinscheduler echo "dolphinscheduler" | passwd --stdin dolphinscheduler sed -i '$adolphinscheduler ALL=(ALL) NOPASSWD: ALL' /etc/sudoers sed -i 's/Defaults requiretty/#Defaults requiretty/g' /etc/sudoers

2. 解压并启动。切到部署用户执行:

tar -xvzf apache-dolphinscheduler-*-bin.tar.gz chmod -R 755 apache-dolphinscheduler-*-bin cd apache-dolphinscheduler-*-bin bash ./bin/dolphinscheduler-daemon.sh start standalone-server

3. 验证服务已起来。执行下面命令,能看到 standalone-server 运行中并返回 PID 即成功:

bash ./bin/dolphinscheduler-daemon.sh status standalone-server

4. 登录界面。浏览器打开http://localhost:12345/dolphinscheduler/ui,默认账号admin、密码dolphinscheduler123。能进入主界面就代表部署完成。

跑通:从建项目到运行第一个 Shell 工作流

下面把一个"跑一个 Shell 脚本并看结果"的最小工作流从头做到尾。

  1. 创建项目。顶部进Project,点Create Project,填项目名(如demo)和描述,点Confirm。提交后项目列表里能看到它,说明创建成功。

  1. 画工作流。进入项目,左侧Workflow → Workflow Definition,点Create。从左侧任务栏把SHELL拖到画布,双击节点,在Task NamehelloRaw Script填:
echo "Hello DolphinScheduler" > /tmp/test.txt

  1. 保存。点右上角Save,填工作流名称与描述后确认,画布上节点即被保存下来。

  2. 运行。点工具栏的运行按钮(Start Process)触发一次执行,无需等待定时。

  3. 看结果。左侧Workflow → Workflow Instance能看到刚才的实例,状态列显示绿色勾(成功),Start/End Time 有值即代表任务真正跑完。

盯盘与救火:实例状态、日志与状态控制

工作流跑起来之后,日常就盯三样东西,都在同一个项目里完成。

  • 实例状态。Workflow Instance列表能看到每个实例的运行状态(成功/失败/运行中)和起止时间;点进具体实例,DAG 上每个任务节点会标出自己的执行状态,一眼定位卡在哪一步。
  • 看日志。在任务实例上点View Log,弹出完整执行日志,能看到实际执行的命令、切换的用户、退出码,排查问题主要靠它。

  • 状态控制。实例列表的操作列提供暂停、恢复、重试、终止等按钮:失败的任务可以直接重试而不用重建流程,运行中的可以暂停恢复。想确认服务端健康,切到Monitor页能看 master/worker 的 CPU、内存、心跳状态,不用登机器。

进阶:存储、数据源与插件扩展

跑通流程后,按需扩展,不用一次全配:

  • 换持久化数据库。Standalone 默认 H2 内存库,重启会丢数据;生产请配置 MySQL/PostgreSQL,见 数据源与元数据库配置。
  • 上集群/K8s。正式环境建议伪集群或集群部署,见 集群部署文档。
  • 加任务类型。需要 Spark、Flink、HTTP、K8s 等 40 多种任务,都在 任务插件目录。
  • 对接外部数据源。支持 MySQL、Hive、Doris、PostgreSQL 等,见 数据源插件目录。
  • 对象存储与告警。资源文件存 HDFS/S3/OSS 看 存储插件,失败通知钉钉/飞书/邮件看 告警插件。

容易踩的坑

现象:浏览器打不开 12345 端口。原因:服务没起来或端口被占用。 解决:先跑status确认有 PID,没有就看standalone-server/logs/dolphinscheduler-server.log

现象:任务报权限或执行失败。原因:部署用户没配 sudo 免密,切用户失败。 解决:补齐sudoersNOPASSWD并注释Defaults requiretty,重启服务。

现象:重启 standalone 后工作流全没了。原因:默认用 H2 内存库,重启即清空。 解决:按 数据库配置 切到 MySQL/PostgreSQL 持久化元数据。

现象:任务找不到执行用户。原因:任务指定的执行用户在系统里不存在或没配租户。 解决:在Security里创建用户并分配对应 Linux 租户,再重跑。

DolphinScheduler 把"画流程、定时跑、失败了能看到"这几件事收进了同一个可视化界面,Standalone 十分钟能起来,之后按团队规模平滑升级到集群。更多细节去 官方文档 翻,源码就在 dolphinscheduler-master/、dolphinscheduler-worker/ 这些模块里,动手改之前建议先读一下对应目录的 CLAUDE.md。

【免费下载链接】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),仅供参考

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

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

立即咨询