网站大量收购独家精品文档,联系QQ:2885784924

工作流调度系统ApacheDolphinScheduler介绍和设计原理.pdfVIP

工作流调度系统ApacheDolphinScheduler介绍和设计原理.pdf

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
⼯作流调度系统ApacheDolphinScheduler 介绍和设计原理 1概述 (⽬前处在孵化阶段)是⼀个分布式、去中⼼化、易扩展的可视化DAG⼯作流任务调度系统,其致⼒于解决数据处理流程中错综复杂的依赖 关系,使调度系统在数据处理流程中开箱即⽤。 DolphinScheduler是今年(2019年)中国公司开源的⼀个调度系统,在今年,易观开源的分布式任务调度引擎DolphinScheduler(原 EasyScheduler),根据Apache基⾦会邮件列表显⽰,在包含11个约束性投票(binding votes)和2个⽆约束性投票(non-binding votes) 的投票全部持赞同意见,⽆弃权票和反对票,投票顺利通过,这样便以全票通过的优秀表现正式成为了Apache孵化器项⽬! 1.1背景 在2017年,易观在运营⾃⼰6.8Pb⼤⼩、6.02亿⽉活、每天近万个调度任务的⼤数据平台时,受到ETL复杂的依赖关系、平台易⽤性、可 维护性及⼆次开发等⽅⾯掣肘,易观的技术团队渴望找到⼀个具有以下功能的数据调度⼯具: 易于使⽤,开发⼈员可以通过⾮常简单的拖拽操作构建ETL过程。不仅对于ETL开发⼈员,⽆法编写代码的⼈也可以使⽤此⼯具进⾏ ETL操作,例如系统管理员和分析师; 解决“复杂任务依赖”问题,并且可以实时监视ETL运⾏状态; ⽀持多租户; ⽀持许多任务类型:Shell,MR,Spark,SQL(mysql,postgresql,hive,sparksql),Python,Sub_Process,Procedure 等; ⽀持HA和线性可扩展性。 易观技术团队意识到现有开源项⽬没有能够达到他们要求的,因此决定⾃⾏开发这个⼯具。他们在2017年底设计了DolphinScheduler的 主要架构;2018年5⽉完成第⼀个内部使⽤版本,后来⼜迭代了⼏个内部版本后,系统逐渐稳定下来。 这⾥介绍⼀下DolphinScheduler易观技术团队,他们是⼀⽀来⾃百度、阿⾥、百分点、Ptmind、热云等团队的“数据极客”,秉持易 观“让数据能⼒平民化”的初⼼,积极拥抱开源,曾贡献过Presto Hbase Connector, 等令开发者称赞的项⽬。这次他们在公司的⽀持 下,积极地将⾃⼰开发的调度⼯具推动开源,旨在回馈开源的同时,助⼒打造⼀个更为强⼤的开源⽣态。如果跃跃欲试的想去贡献代码的, 贡献流程可以参考这篇博客:。 团队在2019年3⽉初,⼩范围(10多家公司)开放了DS的种⼦⽤户试⽤,得到了⾮常正能量的反馈,在4⽉初的正式对外开放源码后,很快 就获得了许多开发⼈员的关注兴趣,⽬前github上的star现在已超过1700个,参与开发和使⽤的公司包括嘀嗒出⾏、雪球、凤凰⾦融、⽔ 滴互助、华润万家等,更详细的可以查看:。 1.2特点 DolphinScheduler提供了许多易于使⽤的功能,可加快数据ETL⼯作开发流程的效率。其主要特点如下: 通过拖拽以DAG 图的⽅式将 Task 按照任务的依赖关系关联起来,可实时可视化监控任务的运⾏状态; ⽀持丰富的任务类型; ⽀持⼯作流定时调度、依赖调度、⼿动调度、⼿动暂停/停⽌/恢复,同时⽀持失败重试/告警、从指定节点恢复失败、Kill 任务等操作; ⽀持⼯作流全局参数及节点⾃定义参数设置; ⽀持集群HA,通过 Zookeeper实现 Master 集群和 Worker 集群去中⼼化; ⽀持⼯作流运⾏历史树形/⽢特图展⽰、⽀持任务状态统计、流程状态统计; ⽀持补数,并⾏或串⾏回填数据。 2系统架构 2.1名词解释 流程定义:通过拖拽任务节点并建⽴任务节点的关联所形成的可视化DAG 流程实例:流程实例是流程定义的实例化,可以通过⼿动启动或定时调度⽣成,流程定义每运⾏⼀次,产⽣⼀个流程实例 任务实例:任务实例是流程定义中任务节点的实例化,标识着具体的任务执⾏状态 任务类型: ⽬前⽀持有SHELL、SQL、SUB_PROCESS(⼦流程)、PROCEDURE、MR、SPARK、PYTHON、DEPENDENT(依 赖),同时计划⽀持动态插件扩展,注意:其中⼦ SUB_PROCESS 也是⼀个单独的流程定义,是可以单独启动执⾏的 调度⽅式: 系统⽀持基于cron表达式的定时调度和⼿动调度。命令类型⽀持:启动⼯作流、从当前节点开始执⾏、恢复被容错的⼯作 流、恢复暂停流程、从失败节点开始执⾏、补数、定时、重跑、暂停、停⽌、恢复等待线程。其中 恢复被容错的⼯作流 和 恢复等待线

文档评论(0)

134****3224 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档