记录一下正在开发的一个任务调度系统,目的是为了解决大数据平台下的任务管理、调度及监控。
定时触发和依赖触发。
系统模块:
JobManager:调度系统的Master,提供RPC服务,接收并处理JobClient/Web提交的所有操作;与元数据通讯,维护Job元数据;负责任务的统一配置维护、触发、调度、监控;
JobMonitor: 监控正在运行的Job状态、监控任务池、监控等待运行的Job;
JobWorker:调度系统的Slave,从任务池中获取Job、负责启动并收集Job的执行状态,维护至元数据;使用Jetty提供任务运行日志访问服务。
JobClient/Web:调度系统客户端类,前端界面提供给用户,用作任务的配置、管理、监控等;
任务元数据:目前使用Mysql,保存Job的配置、依赖关系、运行历史、资源配置、告警配置等;使用Mysql很不靠谱,任务多的时候会成瓶颈,必须迁移至分布式存储,Zookeeper也行;
系统特性:
分布式:容量和负载能力(JobWorker)可线性扩充;
高可用性:拥有主备Master,一旦主Master异常,备Master会接替主Master提供服务;
高容错性:Master重新启动后,会将之前未完成的任务重新调度运行;
完善易用的Web用户界面:用于用户配置、提交、查询、监控任务及任务的依赖关系;
支持任意类型的任务:除了Hadoop生态圈的MapReduce、Hive、Pig等,还支持其他任何语言开发的任务,如Java、Shell、Python、Perl、Spark等;
完整的日志记录:收集并记录任务运行过程中产生的标准输出和标准错误,提供Http访问,用户可通过访问任务对应的日志Url来方便的访问任务运行日志;
任务之间的灵活依赖:可将任意一个任务作为自己的父任务进行依赖触发;
灵活多样的告警规则:除了失败告警,也支持任务超时未完成、任务超时未开始等告警规则;
难点:
依赖触发时候,业务日期以及子孙任务的判断,特别是手工运行任务,并且运行所有子孙任务的场景;
元数据的设计和存储:刚开始想借鉴MapReduce的架构,元数据只做持久化,其他全通过RPC,在内存中进行,但复杂度太高。
任务的恢复:服务异常重启之后,想将之前所有的任务恢复到原来的状态。
JobWorker之间的共享存储:暂时将任务程序放在HDFS上,JobWorker在运行任务时候从HDFS获取到本地。
任务超时告警:当一个任务超过某一时间还没开始或者成功结束时触发告警,此类告警放到Quartz中去触发。
JobWorker可以运行在任意机器上,只需要能访问元数据,一些不好迁移的业务程序可以将JobWorker运行在其机器上,添加任务时候需指定资源,这样,在分配任务的时候只会分配到指定的资源上去。
不同的业务需要用不同的用户去执行:将业务类型和用户名绑定。
KILL任务:对于Hadoop和Hive任务,不能仅仅销毁执行进程,需要从日志中解析Hadoop jobid,执行hadoop kill命令。
获取更新信息请查看我的博客: http://lxw1234.com
相关推荐
本文将详细介绍DolphinScheduler的特点、架构和优势,以及如何使用它构建强大的大数据任务调度系统。 ## 特点和优势 ### 1. 分布式任务调度 DolphinScheduler支持分布式任务调度,可以同时管理和调度多个任务。这...
第一章:工作流任务调度系统 1.大数据调度系统概论 2.企业级工作流 3.工作流依赖调度 4.工作流定时调度 第二章:企业级任务流调度系统Oozie 1.Oozie的应用场景 2.Oozie的功能及模块 3.Oozie的与MR的关系 ...
Apache DolphinScheduler是新一代分布式大数据工作流任务调度平台,致力于“解决大数据任务之间错综复杂的依赖关系,整个数据处理开箱即用”。它以 DAG(有向无环图) 的方式将任务连接起来,可实时监控任务的运行状态...
大数据平台应具有统一运维监控方面,可以图形化的实现安全管理、用户管理、监控运维、服务调度、应用部署、资源管理、作业编排、服务接口等。 大数据平台应同时支持作业调度管理,即实现统一的作业调度与编排管理...
大数据平台应具有统一运维监控方面,可以图形化的实现安全管理、用户管理、监控运维、服务调度、应用部署、资源管理、作业编排、服务接口等。 大数据平台应同时支持作业调度管理,即实现统一的作业调度与编排管理...
大数据轻松调度
Tesla是面向企业级复杂业务系统的数据化驱动运维解决方案,解决方案包含一个统一运维门户(运维工单、运维垂直搜索)和四个运维基础平台(流程平台、配置平台、作业平台、数据平台),集日常运维工单管理、自动化发布...
巨鲸任务调度平台为美柚大数据研发的分布式计算任务调度系统,提供Spark、Flink等批处理任务的DAG调度和流处理任务的运行管理和状态监控,并具有Yarn应用管理、重复应用检测、大内存应用检测等功能。
FusionInsightHD华为⼤数据平台 华为FusionInsight HD是⼀个分布式数据处理系统,对外提供⼤容量的数据存储、分析查询和实时流式数据处 理分析能⼒。 安全 架构安全、认证安全、⽂件系统层加密 可靠 所有管理节点...
巨鲸任务调度平台为美柚大数据研发的分布式计算任务调度系统,提供Spark、Flink等批处理任务的DAG调度和流处理任务的运行管理和状态监控,并具有Yarn应用管理、重复应用检测、大内存应用检测等功能。 服务基于Spring...
结合数据测试报告、数据资产等级、代码比对、任务调度等功能在资损、财报等场景 数据建设效率低 痛点描述 : 面对复杂的业务和海量数据表,不知如何有效进行数仓建设、数据组织,以及如何衡量数仓的建设水平 方案及...
将上⾯三个部分整合起来的是任务调度管理系统,不同的数据何时开始同步,各种MapReduce、Spark任务如何合理调度才能使资源利⽤ 最合理、等待的时间⼜不⾄于太久,临时的重要任务能够尽快执⾏,这些都需要任务调度...
Apache DolphinScheduler是一个新一代分布式大数据工作流任务调度平台,致力于“解决大数据任务之间错综复杂的依赖关系,整个数据处理开箱即用”。它以 DAG(有向无环图) 的方式将任务连接起来,可实时监控任务的运行...
2021年中国系统架构师大会(SACC)...大数据海量任务调度和智能运维实践 网易大数据平台运维实战 物联网平台在智慧社区中的应用 携程酒店技术微服务实践 冶金行业数字化转型中区块链的应用启示 数据中心操作系统 等等
那么当发现规模变大监控需求可视化需求的到来Crontab已经显然满足不了需求,抱着一颗解决大数据任务脚本和业务任务脚本难题的心态最终在oozie和Azkaban选择了使用Azkaban来作为公共任务调度系统,那么就随着笔者一同来...
hadoop的整个生态体系,涵盖了系统数据存储、数据收集、数据导入导出到关系数据库、并行计算框架、数据序列化处理与任务调度、数据挖掘和机器学习、列式存储在线数据库、元数据中心、工作流控制、系统部署配置监控、...
蚂蚁调度AntJob-分布式任务调度系统分布式任务调度系统,纯NET打造的重量级大数据实时计算平台,万亿级调度经验积累!面向中小企业大数据分析场景。开源地址:使用教程:体验地址:功能特点AntJob的核心是蚂蚁算法:...