十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

5 步跑通首个分布式工作流:Apache DolphinScheduler 数据编排入门

5 步跑通首个分布式工作流:Apache DolphinScheduler 数据编排入门 5 步跑通首个分布式工作流Apache 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每天凌晨的 ETL 同步脚本在无人值守时跑挂第二天早上报表才发现问题——这种手动盯日志的日子可以结束了。Apache DolphinScheduler 是一个分布式、可视化的数据编排平台data orchestration platform把任务拖到画布上生成 DAG有向无环图依赖用 CRON 定时触发失败自动重试并告警整套流程从人盯变成机器盯。下面先跑通一个最小工作流再讲清楚它适合解决哪些场景。能力速览它替你把哪些事接过去了按场景拆开看DolphinScheduler 覆盖的是数据团队日常的四类工作定时调度与补数内置 Quartz 做 CRON 表达式调度工作流还支持依赖触发上游流程跑完才启动下游和补数backfillUI 原生支持按日期区间回跑历史数据。数据同步与任务扩展Shell、SQL、Spark、Flink、Python、DataX、SeaTunnel 等 20 多种任务类型开箱即用任务插件集中在 dolphinscheduler-task-plugin/ 目录下按 SPI 机制加载缺什么补什么即可。失败告警与健康检查任务失败可按策略重试、从失败节点恢复告警走独立 Alert 服务渠道包括邮件、钉钉、飞书、企业微信、Slack、Telegram、HTTP 等十几种Master、Worker 节点状态与资源占用在 Monitor 页面实时可见。多机横向扩展Master 负责流程编排、Worker 负责执行物理任务两者都可横向扩容并自动故障转移failover服务注册基于 Registry默认 ZooKeeper可选 Etcd/JDBC无需中心化单点。 三条上手路线本地体验 / 容器化 / 集群生产Standalone 快速体验本地尝鲜适用单机能跑通功能验证建议 20 个以下工作流注意它用 H2 内存库存元数据重启即清空。git clone https://gitcode.com/GitHub_Trending/dol/dolphinscheduler cd dolphinscheduler ./mvnw clean install -DskipTests -Prelease cd dolphinscheduler-dist/target/apache-dolphinscheduler-*-bin bash ./bin/dolphinscheduler-daemon.sh start standalone-serverDocker 一键部署开发/测试环境适用各服务独立容器、重启保留元数据仓库内自带 compose 编排PostgreSQL ZooKeeper 四个服务一起拉起cd deploy/docker docker-compose --profile schema up -d # 初始化数据库表结构 docker-compose --profile all up -d # 启动全部服务Kubernetes 集群生产高可用适用多实例、需弹性扩缩的生产环境Helm Chart 位于 deploy/kubernetes/dolphinscheduler/helm install dolphinscheduler deploy/kubernetes/dolphinscheduler三条路线的产物都会暴露同一个入口浏览器访问http://localhost:12345/dolphinscheduler/ui默认账号密码admin / dolphinscheduler123。3.3.0 起二进制包不再内置任务插件依赖如运行时报ClassNotFoundException执行bash ./bin/install-plugins.sh 版本下载依赖包并可通过conf/plugins_config只保留需要的插件例如仅留dolphinscheduler-task-shell。️ 一个任务串到底跑通一个每日 ETL 流程登录后第一件事是准备谁来执行任务。DolphinScheduler 区分两个角色用户User是登录 Web UI 操作的人租户Tenant是任务真正的执行者——Worker 会以租户对应的 Linux 用户身份sudo -u切换过去跑任务。所以在安全中心 - 租户管理里先建一个租户比如data_warehouse会自动创建同名 Linux 用户再回到安全中心 - 用户管理把它分配给 admin。租户就绪后回到项目管理页面创建项目比如daily_etl——DolphinScheduler 里所有工作流必须挂在项目下项目同时是权限隔离的边界。进入项目打开工作流定义点击创建工作流进入画布。从左侧工具栏拖一个 Shell 任务到中间节点名称填抽取上游日志任务参数写一条echo extract done再拖一个 Shell 任务命名为写入数仓内容换成echo load done。接下来把抽取节点的输出箭头拖到写入节点上画布上会出现一条带箭头的连线——这就是 DAG 里的依赖关系上游成功之后下游才会被调度。两个任务都配置好后右侧表单里填写节点名称与脚本内容即可点右上角保存并填好流程名称。此时工作流还是下线状态在工作流定义列表里先点上线再点运行工作流开始执行。执行过程中进入工作流实例页面能看到实例状态从执行中变成成功点开实例找到具体任务右键选查看日志两条extract done/load done会按依赖顺序依次出现在日志里。到这里一个最小 ETL 流程已经完整跑通。要让它每天凌晨自动跑只需在运行参数里给流程配一条 CRON 表达式如0 0 2 * * ?并开启定时。进阶与避坑遇到问题时怎么处理如果启动时报ClassNotFoundException绝大多数情况是任务插件依赖缺失。跑一遍bash ./bin/install-plugins.sh 版本再用conf/plugins_config把不用的插件裁掉减小启动体积。如果发现重启后工作流全没了这是 Standalone 的 H2 内存库特性不是数据被误删。认真使用请把元数据库切到 MySQL 或 PostgreSQL配置见docs/docs/zh/guide/installation/datasource-setting.mdDocker 路线默认就是 PostgreSQL。如果任务偶尔失败想让它自己重试在任务属性里设置重试次数与重试间隔失败策略可配失败后重试直到成功或重试 N 次后直接失败配合流程级的失败告警在流程定义里绑定告警组失败会推送到钉钉、飞书等渠道不用再靠人肉盯。如果需要跨工作流依赖不要用手动等上游跑完再点运行拖一个Dependent依赖任务到画布配置要依赖的上游流程 ID 与成功状态实现天级/月级的跨流程编排。如果怀疑节点本身出问题先看Monitor页面——Master、Worker 的 CPU、内存、负载和数据库连接池状态一目了然不用登录服务器逐台排查配合首页的任务/流程状态统计基本能定位到是任务写错了还是节点扛不住了。如果并行任务把机器压满Worker 端任务按租户队列和优先级调度给重任务单独建租户、调低其优先级再对 Worker 节点做横向扩容比在一台机器上调线程池更稳妥。想继续深入中文用户手册在 docs/docs/zh/guide/从安装、租户、任务类型到告警渠道都有分章节的图文讲解想读源码的话流程状态机在dolphinscheduler-master/任务执行框架在dolphinscheduler-task-executor/告警渠道插件在dolphinscheduler-alert/dolphinscheduler-alert-plugins/注册中心与 SPI 机制分别在dolphinscheduler-registry/和dolphinscheduler-spi/。遇到具体问题或想提改进社区入口是仓库的 Issues 区直接搜索同类关键词往往能找到现成的讨论。【免费下载链接】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),仅供参考
返回列表