当前位置: 首页 > Linux

数据调度平台系统二大种类及其实现方法与流程

时间:2023-04-06 19:14:42 Linux

两大类数据调度平台系统及其实现方法和流程Scale并不是任何大数据开发平台中必不可少的重要组成部分,简单易玩。除了Crontab之外,Quartz是一个独立的定时调度程序/库。开源的分布式作业调度系统也有很多,比较知名的如:oozie,azkaban,chronos,zeus等。另外还有阿里的TBSchedule,SchedulerX,腾讯的Lhotse,还有我们公司的TASKCTL操作系统已经磨练十年目前市面上的两种调度系统,按照功能的不同可以分为两种:定时作业调度系统&DAG工作流作业调度系统。这两类系统在架构和功能实现上通常存在很大差异。下面就请大家科普一下这两个操作系统的区别;计时系统方向,计时系统侧重于大量并发任务分片的执行场景;在实际应用场景中,通常需要定期执行维护工作。逻辑比较离散和无序,只有某些简单的关联。例如:需要定时批量清理一批机器的磁盘空间,定时生成一批商品列表,定时批量索引一批数据,向一批机器发送推送通知用户定期等等。核心目标基本上有两个:1.作业分片的逻辑支持:将一个大任务拆分成多个小任务,分配给不同的服务器执行。崩溃时自动执行任务迁移等。2.高可用和精准定时触发:由于平时往往涉及到实际业务流程的及时性和准确性,通常需要保证任务触发的实时性和可靠性强,所以“负载均衡、弹性扩展”、“状态同步”和“故障转移”通常是这类调度系统在设计架构时应该着重考虑的特性。DAG工作流作业调度系统主要定位于正确处理有序作业的调度依赖,分片执行的逻辑。通常它不是系统关心的粒度。如果有些作业真的很关心分片逻辑,通常会交给后端集群(比如自带分片能力的MR任务)或者特定类型的任务执行后端来实现。DAG工作流调度系统通常服务于很多作业,作业之间的流程依赖更复杂的场景;如:大数据开发平台的离线数仓报表处理业务,从数据采集、清洗、到报表各层级,一个完整的业务流程可能涉及成百上千个相互依赖的作业。因此,DAG工作流调度系统的重点通常包括:足够丰富和灵活的依赖触发机制(如:时间触发任务、依赖触发任务、混合触发任务)作业规划、变更和执行流水线管理以及同步任务的处理优先级管理、业务隔离、权限管理等各种特殊流程(如:暂停任务、重新刷新历史数据、手动标注失败/成功、临时任务与周期任务的协调等)完善的监控告警机制总结:这两类系统的定位目标并不是绝对矛盾的,而且从目前时序调度系统的发展来看,还需要处理一些作业间复杂的强依赖,比如“微批处理(a少量DAG批作业处理)”的概念。但是从实现的角度来说,同时圆满支持这两类需求是非常困难的,因为侧重点不同,在架构上会有一些方面的取舍,而目前的两类的系统都是两者两者都没有完美的平衡。为什么需要调度系统我们都知道,大数据的计算、分析和处理一般是由多个任务单元(Hive、Sparksql、Spark、Shell等)组成,每个任务单元完成特定的数据处理逻辑。多个任务单元之间通常存在很强的依赖性。只有上游任务执行成功,下游任务才能执行。例如,上游任务完成并得到结果A后,下游任务需要将结果A组合产生结果B。因此,下游任务必须在上游任务成功运行并获得结果后启动。为了保证数据处理结果的准确性,这些任务必须按照上下游依赖关系有序、高效地执行。更基本的处理方法是预估每个任务所需的处理时间,按顺序计算出每个任务执行的起止时间,通过定时运行任务来保持整个系统的稳定运行。一个完整的数据分析任务至少执行一次。在数据量小、依赖关系相对简单的低频数据处理过程中,这种调度方式完全可以满足要求。但是在企业级场景下,每天需要执行的任务更多。如果有大量任务,计算任务开始时间会花费很多时间。另外,如果上游任务的执行时间超过了原来的预估时间或者运行异常等问题,上述处理方式根本无法处理,还会造成人力物力的反复损失。因此,对于企业数据开发过程,一个完整高效的工作流调度系统将起到至关重要的作用。写在最后TASKCTL是目前唯一提出“无序定时有序DAG作业流”完整概念的调度产品。它不仅可以处理时序上的“微批”控制,还可以处理DAG作业流中的“时序”控制。例如:在大数据分布式(分片)计算中,对数据进行实时ETL跑批处理,在ETL作业跑批中,在时间窗口内循环计时一个作业或一个分支,了解产品信息。:【etl作业调度工具TASKCTL简单来说】(https://link.zhihu.com/?target...【etl批处理作业集群统一调度平台搭建】(https://link.zhihu.com/?target..随着大数据应用需求的不断扩大,数据处理的复杂性和实时性要求越来越高,TASKCTL作为国内自主研发的专业调度产品,为企业进入做好了充分准备大数据2.0时代。是的,我们的公众号《敏捷调度taskctl》(ID:gh_79ababc7910b)长期更新最新的互联网资讯,行业职场趣闻,还有有趣实用的编程插件以及开发框架知识分享等,喜欢的话可以关注一下哦!敬请期待(?˙ー˙?)