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
凌晨三点,批任务卡住了,你只能翻日志猜哪一步挂了。更麻烦的是连哪个任务先挂的都不知道——依赖关系散在一堆脚本和 crontab 里,没人敢动。
DolphinScheduler 是一个可视化的任务调度系统:工作流在页面上画出来,依赖就是图上的箭头,哪个任务挂了,哪个节点变红,一眼看到。它和 crontab 那类工具最直观的差异:
- 任务画成 DAG 图(有向无环图,箭头单向不绕圈),依赖关系摆在明面上
- 调度和执行分家:Master 节点分活,Worker 节点干活,Worker 加一台就多一份算力
- 单机就能跑,不用先搭集群
环境上只要求一件事
开始前确认机器装好 JDK 8 或 11,java -version能出版本号就行。元数据默认存在 H2 内存数据库里,不用先装 MySQL,这事留给后面。
最小化启动命令
从官方下载页拿二进制包,解压即可启动:
tar -xvzf apache-dolphinscheduler-*-bin.tar.gz cd apache-dolphinscheduler-*-bin bash ./bin/dolphinscheduler-daemon.sh start standalone-server起来之后浏览器一刷就能进:访问http://localhost:12345/dolphinscheduler/ui,默认账号密码是admin/dolphinscheduler123。standalone 模式定位就是快速体验,官方建议工作流数量控制在 20 个以内;想让重启后数据还在,再把 H2 换成 MySQL 改下配置。
界面四个区域速查
进来别慌,顶部导航就是全部入口,你常打交道的就四个地方:
- Home:任务和 workflow 实例的状态统计,先出问题时先看这里
- Project:所有工作流必须挂在项目下,相当于目录
- Datasource:集中管理 MySQL、Hive 这些外部数据库连接
- Security:用户和租户管理,跑第一个任务前要用
建第一个 Shell 任务
跑任务前还差两件事:到安全中心的租户管理里建一个租户(任务真正执行时用的 Linux 系统用户),再把它分配给 admin 用户。跳过也能跑,任务会落到默认租户上,用启动服务的用户执行,逻辑就不清晰了。
然后进项目管理建一个项目,点进工作流定义。从左侧工具栏拖一个 SHELL 任务到画布,填节点名,脚本内容写一行echo hello。再拖一个任务出来,从第一个任务往第二个任务拉一根箭头——箭头就是依赖,上游成功后下游才执行。保存、上线,点运行。
到工作流实例页,能看到一条状态为执行中的实例。右键任务选查看日志,你刚写的那句hello就在里面。拉包、启动、跑通,这条路已经闭环了。
Master/Worker 的分界线在哪
单机 standalone 时下面这些角色都在一个进程里,但先搞清楚边界,以后扩集群不慌:Master 负责调度,把到点的工作流拆成一个个任务分发出去;Worker 接到任务后真正执行。两者通过 gRPC 通信,靠服务注册中心(ZooKeeper 或 etcd)做注册和故障转移——某个 Worker 挂了,上面的任务会转给别的机器接管。
配置从哪里拧
配置分两层。第一层是全局文件:conf/common.properties管资源中心存储目录(默认 /tmp/dolphinscheduler),api-server/conf/application.yaml管服务开关,默认值都能用,报错了再改。第二层是页面上的配置:数据源就在 Datasource 页面填 IP、端口(MySQL 填 3306)、用户名和库名,先点测试连接再保存,后面的 SQL 任务直接下拉引用。
如果每天凌晨都要洗一次数据灌库
如果你要每天凌晨把 A 系统的数据洗完灌进 B 库,在 DolphinScheduler 里就是三个任务:一个 SQL 任务取原始数据,一个 Shell 任务跑清洗脚本,一个 SQL 任务写入目标库,两根箭头按顺序串起来。把工作流的定时触发设成每天 01:00,完事。再挂一个告警组,失败时邮件或 webhook 推给你,不用再盯着屏幕。
先把 standalone 跑通,让第一条工作流绿着跑完一轮,顺手把 H2 换成 MySQL 落一下数据。明天再试两台机器的伪集群,Master 和 Worker 的分界线就会从图变成真的两台机器。
【免费下载链接】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),仅供参考