1. 开篇:为什么你需要一个靠谱的任务调度系统?
大家好,我是老张,在数据平台和调度系统这块摸爬滚打了十来年。这些年,我见过太多团队被杂乱无章的定时任务、错综复杂的依赖关系搞得焦头烂额。今天,我想跟你聊聊一个能让你彻底解脱的“神器”——Apache DolphinScheduler,江湖人称“海豚调度”。
简单来说,海豚调度就是一个可视化、分布式的工作流任务调度平台。你可以把它想象成一个超级智能的“项目管家”。以前,你可能用 crontab 写一堆脚本,任务失败了得手动去查日志,任务之间有依赖关系还得自己写脚本去判断。现在,你只需要在页面上拖拖拽拽,画出一个任务流程图(他们叫 DAG),设置好谁先谁后,剩下的就交给海豚调度了。它会帮你自动执行、监控状态、失败告警甚至自动重试。
这次我们要实战部署的,是它的 3.1.3 版本。这个版本在稳定性和功能上都有不少提升,特别适合用在企业生产环境。我这次会基于一个多节点的集群环境,手把手带你从零开始,把整个集群搭起来。过程中我会把那些官方文档里没细说、但实际部署时大概率会踩的“坑”都给你指出来,尤其是角色分配策略和ZooKeeper版本兼容性这两个最容易出问题的地方。咱们的目标是:一次部署,稳定运行。
2. 部署前的“战前准备”:环境与规划
打仗之前,粮草先行。部署集群也一样,先把环境和规划理清楚,后面能省下一大半的麻烦。
2.1 硬件与软件环境清单
首先,你得准备至少三台 Linux 服务器(虚拟机或物理机都行)。为什么是三台?因为我们要做高可用,Master 服务至少需要两个节点来避免单点故障。我这里用五台机器来演示一个更典型的架构:
| 主机名 | IP地址示例 | 分配角色 | 说明 |
|---|---|---|---|
| ds-master-01 | 192.168.1.101 | Master Server, API Server, Alert Server | 主控节点1,同时承载接口和告警服务 |
| ds-master-02 | 192.168.1.102 | Master Server | 主控节点2,实现Master高可用 |
| ds-worker-01 | 192.168.1.103 | Worker Server | 工作节点1,执行具体任务 |
| ds-worker-02 | 192.168.1.104 | Worker Server | 工作节点2,执行具体任务 |
| ds-worker-03 | 192.168.1.105 | Worker Server | 工作节点3,执行具体任务 |
角色解释一下:
- Master Server: 大脑,负责任务的解析、监控和命令下发。生产环境务必部署至少两个,它们会自动选举一个 Leader 来工作。
- Worker Server: 肌肉,负责接收 Master 的命令并实际执行任务。可以横向扩展,机器越多,并行处理能力越强。
- API Server: 对外提供 RESTful API 的服务网关,UI 界面也靠它来交互。
- Alert Server: 告警服务,任务失败或达到某些条件时,通过邮件、钉钉、微信等通知你。
软件依赖方面,每台机器都需要:
- JDK 8: 必须是 1.8 版本,更高版本(如 JDK 11+)在 3.1.3 版本可能存在兼

4733

被折叠的 条评论
为什么被折叠?



