ARTICLE DETAIL

资讯详情

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

Apache DolphinScheduler 完整指南:用可视化 DAG 工作流搞定分布式任务调度

Apache DolphinScheduler 完整指南:用可视化 DAG 工作流搞定分布式任务调度 Apache DolphinScheduler 完整指南用可视化 DAG 工作流搞定分布式任务调度【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/gh_mirrors/dolp/dolphinscheduler凌晨两点上游取数任务挂了下游十几张报表任务全停你得爬起来手动补跑——如果你的数据平台也遇到过这种一挂全停DolphinScheduler 这个分布式任务调度系统值得认真看一眼。Apache DolphinScheduler 是一个分布式、可横向扩展的可视化工作流编排平台把数据任务画成 DAG 图平台按依赖关系自动调度、失败自动重试、告警通知到人任务分散在多台机器上并行执行。简单说它把任务该谁跑、什么时候跑、挂了怎么办从人脑和脚本里挪进了系统。⚠️ 数据任务调度绕不开的 4 个痛点依赖关系靠人脑记。任务少的时候还行一旦到几十个任务谁依赖谁、先跑哪张表只有几个老员工清楚。新人想改一个任务不敢动怕影响下游老员工一离职依赖关系就留在脑子里了。一个环节失败全线阻塞。上游数据没到下游任务要么产出错误结果要么干等着。整条链路没有人在实时盯通常要等报表延迟、业务来问数据怎么还没出你才知道出了问题。补数据全靠手工。补一天数据还凑合补一周就得手工一条条跑脚本、等结果、再填日期干上几个小时中间任何一个任务失败了还得从头再来。任务散落在各处机器。crontab 在一台机器上脚本在另一台服务器上Spark 作业又丢在集群里。现在有多少任务在跑、跑在哪台机器上、什么状态没人能一口答上来。DolphinScheduler 可视化工作流编排能干什么一张图看懂全部任务流转整条流水线画成 DAG 图节点颜色就是任务状态卡在哪一步、跑在哪台机器上一眼可见。交接和排查不再靠口头问。任务挂了平台自己盯失败任务自动重试超时任务自动告警邮件、钉钉、企业微信、飞书等渠道可选。不是每个故障都需要有人半夜爬起来。补数据一键批量圈定一个日期区间平台按依赖关系批量调度历史数据不用手工逐条跑脚本。一套界面跑各种任务内置任务类型覆盖了大部分数据管道不用再为 SQL、Shell、大数据作业分别维护不同的调度方式任务类型干什么什么时候用Shell执行脚本和系统命令取数、文件搬运、简单逻辑SQL对 MySQL、PostgreSQL、Hive 等执行 SQL表加工、指标计算Spark / MR提交大数据作业大规模离线计算Python执行 Python 脚本算法、特征工程DataX / Sqoop异构数据源之间搬数批量数据同步子流程 (Sub_Process)调用另一个工作流流程复用分支 (Switch) / 条件按条件走不同分支差异化处理流程资源文件在线管脚本、jar 包在网页上直接上传、编辑任务里按名称引用。不用再去问这个脚本哪个版本、在机器上哪个目录。多租户隔离不同用户映射到不同系统账号资源和权限分开开发环境不会踩到生产环境。背后的运转原理像一条工厂流水线拿工厂来类比Master 是调度中心决定哪个订单发去哪个站点Worker 是配送站真正干活的ZooKeeper 是打卡机记录哪些站点在线。某个站点掉线打卡机立刻发现订单自动转给别的站点整条线不停。调度链路分四步走API Server 接收请求定时触发、依赖触发或手动运行把流程实例写进数据库Master 监听被触发的实例把 DAG 拆解成一个一个的任务上下文Master 按负载挑一台 Worker把任务塞进任务队列——Master 和 Worker 都没有中心节点挂掉任意一台都不影响整体Worker 真正执行任务持续回报状态和日志页面节点颜色随之刷新。容错分三层节点层面心跳丢失后 ZooKeeper 摘除节点没跑完的任务重新分配单机层面任务队列限制单机并发数任务多时会排队而不会把机器塞死任务层面失败按配置重试重试次数用尽就触发告警。角色类比职责能不能加机器API Server前台接页面和接口请求管用户、资源、流程定义可以Master调度中心监听触发、拆解 DAG、分派任务可以无中心节点Worker配送站从队列取任务执行回报状态可以动态扩缩ZooKeeper打卡机节点上下线注册、心跳检测建议三节点集群MySQL台账存流程定义、实例、任务、告警记录单独做高可用 上手体验从零搭一个工作流先把项目跑起来。用源码构建的话git clone https://gitcode.com/gh_mirrors/dolp/dolphinscheduler./mvnw clean install -Prelease构建完成后产物在dolphinscheduler-dist/target/目录下分别是二进制包和源码包团队环境也可以用仓库里的 Docker / Kubernetes 部署配置直接起一套。画布编排新建项目和流程定义画布基于 AntV X6 图形引擎从左侧栏拖任务节点进来连线表示依赖。图大了有自动排版和全屏按钮拖拽、缩放、框选都支持不会越画越乱。参数配置工作流级设全局参数节点级参数可以单独覆盖比如用${bizdate}表示业务日期cron 表达式设置调度频率每个节点还能单独配重试次数、重试间隔、超时时间和告警组。运行监控启动后实例页的 DAG 节点颜色随状态实时变化运行中、成功、失败一目了然点节点可在线看日志滚动和下载都支持历史实例还能切树形视图和甘特图看。失败重试与告警节点失败先按配置重试重试次数用完才告警运行中的实例可以暂停、终止也可以从失败节点恢复不用整条流程从头再跑。金融、电商、制造在用它做什么金融风控每日风险模型特征更新、批量交易数据处理按固定顺序编排成工作流失败即重试并告警。特征数据和交易数据保持同频风控指标的时效和质量都有保障。电商用户行为小时级的行为数据 ETL、每日特征计算、每周模型训练全部排进一条工作流。推荐特征按时产出运营和算法同学在一张图上看整条链路。制造预测性维护传感器数据接入、异常检测、预测模型训练定时调度结果自动触发维护预警。设备故障提前预判维护从被动救火变成主动安排。适合谁用从哪一步开始适合三类人搭 ETL 管道和数据平台的数据工程师、做内部数据平台开发的开发者、需要统一任务管理的团队负责人。仓库模块按职责拆分边看代码边找入口很方便dolphinscheduler-server/是 Master 和 Worker 的主逻辑dolphinscheduler-ui/是页面代码dolphinscheduler-task-plugin/是任务插件每种任务类型都是一个插件dolphinscheduler-datasource-plugin/是数据源插件docker/下有 Docker 和 Kubernetes 部署配置。选型建议如果你有多环节的数据任务、想可视化管控、需要多机并行值得试如果只是单机跑几个 crontab 定时任务现有方式够用没必要多一层开销。下一步先部署一套 Docker 试用环境把你手头最痛的那条任务链画成第一个 DAG跑两天看看告警和重试够不够用。【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/gh_mirrors/dolp/dolphinscheduler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表