美文网首页任务调度大数据开发
大数据开发:数据平台调度系统设计及产品选型

大数据开发:数据平台调度系统设计及产品选型

作者: 成都加米谷大数据 | 来源:发表于2021-05-26 17:40 被阅读0次

在大数据处理场景下,数据平台的调度系统设计非常关键,而市场上主流的开源产品也非常多,从架构层面来说,对于调度系统设计及主流产品都需要有相应的了解。今天的大数据开发学习分享,我们就来讲讲数据平台调度系统设计及产品选型。

调度系统设计要点

调度平台其实需要解决三个问题:任务编排、任务执行和任务监控。

任务编排:

采用调用外部编排服务的方式,主要考虑的是编排需要根据业务的一些属性进行实现,所以将易变的业务部分从作业调度平台分离出去。如果后续有对编排逻辑进行调整和修改,都无需操作业务作业调度平台。

任务排队:

支持多队列排队配置,后期根据不同类型的开发人员可以配置不同的队列和资源,比如面向不同的开发人员需要有不同的服务队列,面向不同的任务也需要有不同的队列优先级支持。通过队列来隔离调度,能够更好地满足具有不同需求的用户。不同队列的资源不同,合理的利用资源,达到业务价值最大化。

任务调度:

对任务、以及属于该任务的一组子任务进行调度,为了简单可控起见,每个任务经过编排后会得到一组有序的任务列表,然后对每个任务进行调度。这里面,稍有点复杂的是,任务里还有子任务,子任务是一些处理组件,比如字段转换、数据抽取,子任务需要在上层任务中引用实现调度。

任务是调度运行的基本单位。被调度运行的任务会发送到消息队列中,然后等待任务协调计算平台消费并运行任务,这时调度平台只需要等待任务运行完成的结果消息到达,然后对作业和任务的状态进行更新,根据实际状态确定下一次调度的任务。

调度平台设计中还需要注意以下几项:

调度运行的任务需要进行超时处理,比如某个任务由于开发人员设计不合理导致运行时间过长,可以设置任务最大的执行时长,超过最大时长的任务需要及时kill掉,以免占用大量资源,影响正常的任务运行。

控制同时能够被调度的作业的数量,集群资源是有限的,我们需要控制任务的并发量,后期任务上千上万后我们要及时调整任务的启动时间,避免同时启动大量的任务,减少调度资源和计算资源压力。

作业优先级控制,每个业务都有一定的重要级别,我们要有限保障最重要的业务优先执行,优先给与调度资源分配。在任务积压时候,先执行优先级高的任务,保障业务影响最小化。

数据调度产品简介

对于简单的离线数据迁移job,一般都是利用shell脚本通过crontab进行定时执行,但是随着多个job复杂度的提升,似的协调工作、任务监控都变得麻烦,所以需要选择使用工具进行调度监控。

DAG工作流类系统:

oozie

oozie是Hadoop平台开源的工作流调度引擎,它可以管理Hadoop作业,oozie属于web应用程序。

azkaban

azkaban是由Linkedin开源的批量工作流任务调度器。用于在一个工作流内以特定顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系。

chronos

chronos是由Airbnb公司推出的用来替代crontab的开源产品。用户可以用它来对作业进行编排,支持使用Mesos作为作业执行器,与Hadoop进行交互。

分片类系统:

TBSchedule

TBSchedule是淘宝的分布式调度开源框架,基于Zookeeper Java实现。它可以让批量任务或者不断变化的任务,能够被动态的分配到多个主机的JVM中的不同线程组中并行执行,使得所有的任务能够被不重复,不遗漏的快速处理。

elastic-job

当当开发的弹性分布式任务调度系统,采用zookeeper实现分布式协调,实现任务高可用以及分片,并且可以支持云开发。

Saturn

唯品会自主研发的分布式的定时任务的调度平台,基于当当的elastic-job版本1开发,并且可以很好的部署到docker容器上。

关于大数据开发学习,数据平台调度系统设计及产品选型,以上就为大家做了基本的介绍了。在现有的大数据分布式集群环境下,调度系统的设计很重要,对于开发者而言,也需要多去思考。

相关文章

  • 大数据开发:数据平台调度系统设计及产品选型

    在大数据处理场景下,数据平台的调度系统设计非常关键,而市场上主流的开源产品也非常多,从架构层面来说,对于调度系统设...

  • 数据可视化平台理论与实践

    前面说完了大数据开发平台的核心组件,作业调度系统,接下来讨论一下大数据开发平台的脸面之一,数据可视化平台。和调度系...

  • 基于开源大数据调度系统Taier的Web前端架构选型及技术实践

    原文链接:基于开源大数据调度系统Taier的Web前端架构选型及技术实践[https://mp.weixin.qq...

  • PDM和MES系统的差异

    PDM产品数据管理,用于产品设计部门 MES生产制造执行系统,用于生产计划及车间调度管理 DMS经销商管理系统

  • 2019-03-21

    数据&AI产品负责人 岗位描述: -负责大数据系统平台、搜索、推荐等产品设计及过程管理,包括收集用户需求、竞品调研...

  • 数据平台调度系统

    对于规模以上的应用来说,调度系统已经是必不可少的组成部分,尤其在基于数据分析的后台应用大量增长的今天,健壮的调度任...

  • 文章框架

    一个系统实施人员的自我修养 两个发展轴:B端产品设计,开发和架构 产品设计:大数据大屏,人力数据分析,高端招聘,组...

  • DolphinScheduler容错源码分析之Master

    最近产品上选择使用DolphinScheduler作为大数据的任务调度系统。作为分布式调度系统DolphinSch...

  • 产品经理的职责

    1.设计和迭代数据应用平台功能,撰写产品需求文档和设计产品交互。设计和迭代指的是:优化现有产品。数据应用平台指的是...

  • 从0到1搭建大数据平台之计算存储系统

    前面已经给大家讲了《从0到1搭建大数据平台之数据采集系统》、《从0到1搭建大数据平台之调度系统》,今天给大家讲一下...

网友评论

    本文标题:大数据开发:数据平台调度系统设计及产品选型

    本文链接:https://www.haomeiwen.com/subject/hezksltx.html