
5 分钟跑通 DolphinScheduler 工作流调度实战指南【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinschedulerApache DolphinScheduler 是一个开源的分布式工作流调度平台核心能力是任务编排与定时调度把 Shell、SQL、Spark 这类散落在各处的作业用可视化 DAG 串起来按需自动执行。这篇文章按「看懂 → 跑起来 → 用熟 → 排障」的成长路径组织帮你一两个小时内建立完整认知。先建立认知DolphinScheduler 是干什么的这一节解决「这东西跟我有什么关系」的问题不用装任何东西纯看明白。五个服务组成的去中心化集群DolphinScheduler 由 5 类服务组成MasterServer 负责 DAG 切分和任务状态监控WorkerServer 负责把任务真正跑起来ApiServer 提供 REST 接口AlertServer 发告警LoggerServer 负责日志读取。它们可以分布在多台机器上水平扩展元数据则存在 MySQL 或 PostgreSQL 里。三个必须分清的概念项目、工作流、任务项目Project资源隔离边界一个团队的作业通常放一个项目里。工作流Workflow任务节点加依赖关系构成的 DAG是可复用的编排模板。任务Task最小执行单元一段 Shell、一条 SQL、一次 Spark 提交。打个比方项目像公司工作流像项目计划表任务就是表格里具体排期的每一件事。和 crontab 的本质区别传统 crontab 只能「到点就跑」DolphinScheduler 解决的是依赖问题A 跑完 B 才跑A 失败 B 就不跑B 失败还能按配置重试。所有状态都持久化服务重启后未完成的实例会自动恢复。 一句话收获它就是「带依赖管理和容错的分布式 crontab」理解这一点后面所有功能都顺理成章。部署选型体验、测试、生产各用哪套这一节解决「怎么装」的问题。目标只有一个浏览器打开 12345 端口看到登录页。十分钟体验standalone 单容器最快的方式是 standalone 镜像一条命令拉起全部服务docker run --name ds-standalone -p 12345:12345 \ -d apache/dolphinscheduler-standalone-server:版本号注意它用内存数据库 H2 存元数据重启即清空只适合体验功能别拿去做生产。三种正式部署方式对比部署方式适用场景元数据特点standalone 容器功能体验H2 内存库单进程重启丢数据docker-compose开发测试PostgreSQL各服务独立容器仓库内带编排文件集群部署生产环境MySQL/PostgreSQL多 Master/Worker 水平扩展Kubernetes云原生环境外部数据库官方提供 Helm Chart仓库里就带了现成编排文件不用自己拼装Docker Compose 配置在 deploy/docker/docker-compose.ymlK8s 模板在 deploy/kubernetes/dolphinscheduler/。用 docker-compose 启动时加--profile schema先初始化库表再加--profile all拉起全部服务。一个版本相关的重要变化从 3.3.0 版本起二进制包不再内置插件依赖任务插件的驱动 jar 需要单独安装仓库里的 script/install-plugins.sh 可以一键完成。 一句话收获体验用 standalone开发用 docker-compose生产上集群——如果任务启动报 ClassNotFoundException先怀疑插件依赖没装全。装好之后就可以进去跑第一个工作流了。跑通第一个工作流从租户到 Shell 任务这一节解决「怎么跑通第一个任务」全程鼠标操作不需要写代码。四个前置动作顺序不能乱登录默认账号admin/dolphinscheduler123地址http://localhost:12345/dolphinscheduler/ui。然后按顺序做四件事创建租户安全中心 → 租户管理。租户是任务真正的执行身份背后对应一个 Linux 用户Worker 用它跑脚本。给用户分配租户安全中心 → 用户管理。没分配租户任务跑不起来。创建项目项目管理页面。创建工作流进入工作流定义页从左侧工具栏拖入两个 Shell 任务用箭头连出依赖关系保存并上线。运行、看日志闭环完成点「运行」后到工作流实例页能看到状态从「执行中」变成「成功」。点开实例右键任意任务选「查看日志」能看到你在 Shell 里 echo 的内容。 一句话收获定义 → 调度 → 执行 → 日志你已经走完一次完整闭环详细图文步骤在 快速上手教程。有了这条闭环打底接下来看它还能编排什么任务。任务类型与参数体系编排能力的边界在哪这一节解决「它能调什么、怎么调得稳」直接决定你工作流的表达力。30 余种任务类型按需取用从 Shell、Python、SQL到 Spark、Flink、MapReduce再到 Sqoop、DataX、SeaTunnel 这类数据集成任务官方插件基本覆盖了数据开发的主流场景。每种任务一篇文档全部在 docs/docs/zh/guide/task/ 目录下用到哪个查哪个。参数体系三个层次决定最终值参数按「任务参数 工作流参数 全局参数」的顺序层层覆盖同名字段以任务级为准。系统还内置了一批时间变量如业务日期在 SQL 和 Shell 里直接引用写 T1 离线作业基本靠它。让任务跑稳的四个开关每个任务节点都支持失败重试次数与重试间隔、超时告警、CPU/内存配额、Worker 分组指定任务在哪些机器执行。完整字段列表见 任务参数附录。生产经验重试至少设 1 次IO 密集任务记得配内存上限。一句话收获任务类型决定了「能做什么」参数体系决定了「做得稳不稳」两者都摸清了就只差自动化这一步了。进阶三件套定时调度、告警与 API 集成这一节解决「从手动点到全自动」的问题是让 DolphinScheduler 真正进生产的关键一步。定时调度给工作流上 CRON上线的工作流可以配置调度表达式支持分钟级 CRON还能选择失败后是否继续调度。批量补数、T1 跑批都靠它配置入口在 UI 的「工作流定义 → 调度」标签页。告警任务挂了要有人知道系统内置邮件、钉钉、飞书、企业微信、Slack、Telegram、HTTP 回调等告警渠道在「告警管理」里创建实例、再绑定到用户即可生效各渠道的配置说明在 告警文档。API 与 Python SDK把调度平台当中间件用页面能做的API 基本都能做。三步走安全中心 → 令牌管理生成 Token浏览器打开http://{host}:12345/dolphinscheduler/swagger-ui/index.html查接口用 curl 或 Postman 带上token请求头调用。官方还有 Python SDKpydolphinscheduler用声明式写法直接提交工作流适合在 CI 里自动注册任务。详见 Open API 指南 和 pydolphinscheduler 文档。一句话收获调度管「何时跑」告警管「跑了出事谁知道」API 管「系统怎么接入」——三件套齐了才算生产可用。而生产环境里真正的高频动作是出问题时快速定位。出问题去哪查三个文档入口与排障路线这一节解决「卡住了怎么办」把官方资料收敛成几个真正够用的入口。三个入口覆盖 90% 的需求用户指南docs/docs/zh/guide/安装、任务、API 全在这里按目录查。FAQdocs/docs/zh/faq.md有问有答比如「怎么指定机器跑任务」「Worker 分组怎么用」。架构设计docs/docs/zh/architecture/排查「为什么没调度」这类深水区问题前值得读一遍。常见坑的排查顺序流程启动了但没有实例先确认 Master 服务是否在线再查t_ds_error_command表里的错误信息。任务权限报错检查 Linux 上是否存在对应租户用户以及该用户是否分配给了当前登录账号。ClassNotFoundException确认插件依赖是否通过 install-plugins.sh 装齐。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),仅供参考