任务调度中心系统-概要设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务调度中心系统
目录
一、设计目的 (5)
二、整体架构 (7)
2.1 核心功能 (7)
2.2 核心组件 (8)
三、Job元数据 (8)
四、JobClient (9)
五、JobManager (Master) (9)
5.1 RPCServer (9)
5.2 数据库管理服务类 (10)
5.3 资源管理服务 (11)
5.4 Job依赖关系维护 (12)
5.5 定时调度器 (12)
5.7 告警服务 (13)
5.8 初始化流程 (13)
5.9 启动流程 (13)
5.10 成功Job处理流程 (14)
5.11 失败Job处理流程 (14)
六、JobWorker (Slave) (14)
6.1 存数据结构 (14)
6.2 定期从获取可以运行的Job (14)
6.3 执行Job (15)
七、核心流程图 (15)
7.1 Job维护流程 (15)
7.2 Job依赖维护流程 (16)
7.3 资源维护流程 (18)
7.4 Job提交流程 (19)
7.5 Job执行流程 (20)
7.6 Job监控流程 (20)
八、后台部署与运行 (22)
8.1 安装 (22)
8.2 数据库建库建表 (22)
8.3 配置 (22)
8.4 运行 (24)
九、部署与运行 (25)
9.1 安装 (25)
9.2 配置 (25)
9.3 运行 (26)
一、设计目的
●目前整个市场任务调度非常粗糙,基本仅靠Crontab来定时运行,
日志清洗、日志校验、数据分析、入库各模块之间无有效依赖,经
常由于前置任务出错或者未完成,后续的任务运行出错,并且对任
务出错的监控不到位,造成分析数据不能及时入库,导致线上BUG。
●真实业务场景下合理的任务运行图:
(图一)
1.定时触发一个日志校验的Job,去检查清洗后的日志是否已经就
绪;
2.分析的JOB均依赖日志校验的Job,一旦日志校验的Job执行
成功,则并发启动依赖其的分析Job1-4;
3.入库JOB1依赖分析JOB1和分析JOB2,如果这两个分析JOB
全部执行成功,则启动执行入库JOB1;
4.对于入库JOB2,如果分析JOB3和分析JOB4有一个未成功执
行,则入库JOB2就不执行;
●一个复杂的任务依赖图:
●为了解决数据平台分配任务的稳定性,时效性,因此设计开发任务
调度中心系统,旨在解决任务的统一配置,统一调度,统一监控告警等功能,减少开发人员的开发和维护成本,提高平台的稳定性。
二、整体架构
2.1 核心功能
1.Job维护:添加、修改、删除、杀死Job;
2.Job依赖关系维护:添加、修改、删除Job之间的依赖关系;
3.查询类:查询Job列表、根据状态查询Job列表、查询Job的父子依赖等;
4.资源维护:添加、修改、删除资源,查询资源列表;
5.Job触发:支持定时、依赖、手工触发调度Job;
6.任务失败告警:当任务失败或者某个时间点未成功结束时,触发和短信报警;
7.支持任务类型包括:shell、python、MapReduce、Hive、DataHub任务的调度及监
控;
8.可扩展性:Slave(JobWorker)可根据需要随时扩充;
2.2 核心组件
1.元数据库:Mysql,保存Job的配置、依赖关系、运行历史、资源配置、告
警配置等;
2.JobClient:客户端类,对外的唯一接口;
3.JobManager:Master,提供RPC服务,接收并处理JobClient提交的所
有操作;与元数据库通讯,维护Job元数据;负责任务的统一配置维护、触发、调度、监控;
4.JobMonitor: 监控正在运行的Job状态、监控任务池、监控等待运行的Job;
5.JobWorker:Slave,从任务池中获取Job、负责启动并收集Job的执行状
态,以心跳方式发送给JobManager;
以上各组件下文中详细介绍。
三、J ob元数据
元数据存储于Mysql 。
四、J obClient
1.用户与系统交互的唯一接口;
2.封装提供给用户使用的所有接口,单例模式,使用时候指定JobManager
的RPC hostname和端口号;
3.拥有JobManager的RPC代理,将用户提交的操作通过RPC调用
JobManager的相应接口进行处理;
4.提供的接口包括:
●操作Job,包括增加,修改,删除,运行,杀死Job等;
●维护Job依赖关系;
●配置、查询资源;
●查询Job信息,包括指定条件查询,如状态,JobID,时间等;
●查询Job依赖;
五、J obManager (Master)
任务调度中心系统的Master节点,负责所有任务的调度,分发,状态跟踪,报警,资源管理等。
5.1 RPCServer
●JobManager自身为一个RPCServer,为JobClient提供调用接口;
●为JobClient提供的RPC接口: