任务调度中心系统

上传人:hs****ma 文档编号:514073505 上传时间:2023-11-13 格式:DOCX 页数:31 大小:266.28KB
返回 下载 相关 举报
任务调度中心系统_第1页
第1页 / 共31页
任务调度中心系统_第2页
第2页 / 共31页
任务调度中心系统_第3页
第3页 / 共31页
任务调度中心系统_第4页
第4页 / 共31页
任务调度中心系统_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《任务调度中心系统》由会员分享,可在线阅读,更多相关《任务调度中心系统(31页珍藏版)》请在金锄头文库上搜索。

1、任务调度中心系统当前版本作者修改记录更新时间版本修订人修改容目录一、 设计目的5二、 整体架构72.1 核心功能72.2 核心组件8三、Job元数据8四、J o bClient 9五、JobManager (Master)95.1 RPCServer95.2 数据库管理服务类105.3 资源管理服务115.4 Job依赖关系维护125.5 定时调度器125.6 Job监控125.7 告警服务135.8 初始化流程135.9 启动流程135.10成功Job处理流程145.11失败Job处理流程14六、JobWorker (Slave)146.1 存数据结构146.2定期从获取可以运行的Job14

2、6.3 执行 Job15七、核心流程图157.1 Job维护流程157.2 Job依赖维护流程167.3 资源维护流程187.4 Job提交流程197.5 Job执行流程207.6 Job监控流程20八、后台部署与运行228.1 安装228.2 数据库建库建表 228.3 配置228.4 运行248.5 停止 24九、部署与运行259.1 安装 259.2 配置 259.3 运行 26一、设计目的目前整个市场任务调度非常粗糙,基本仅靠Crontab来定时运行,日志清洗、日志校验、数据分析、入库各模块之间无有效依赖,经常由于前置任务出错或者未完成,后续的任务运行出错,并且对任务出错的监控不到位,

3、造成分析数据不能及时入库,导致线上 BUG 真实业务场景下合理的任务运行图:分析J0B2入库J0B2日志校验分护JOB?分 tFlJOBl图一)1. 定时触发一个日志校验的Job,去检查清洗后的日志是否已经就绪;2. 分析的JOB均依赖日志校验的Job,一旦日志校验的Job执行成功,则并发启动依赖其的分析Job1-4 ;3. 入库JOB1依赖分析JOB1和分析JOB2,如果这两个分析JOB全部执行成功,则启动执行入库J OB1 ;4. 对于入库JOB2,如果分析JOB3和分析JOB4有一个未成功执行,则入库JOB2就不执行;个复杂的任务依赖图:为了解决数据平台分配任务的稳定性,时效性,因此设计

4、开发任务调度中心系统,旨在解决任务的统一配置,统一调度,统一监控告警等功能,减少开发人员的开发和维护成本,提高平台的稳定性。二、整体架构HW-SerwJobWftrkerI Vpw/mr/MVffl-冇幫 歴炊9= tz尉 l*ftJob Workerih/pv/pnr/hwe2.1 核心功能1. Job 维护:添加、修改、删除、杀死 Job;2. Job 依赖关系维护:添加、修改、删除 Job 之间的依赖关系;3. 查询类:查询 Job 列表、根据状态查询 Job 列表、查询 Job 的父子依赖等;4. 资源维护:添加、修改、删除资源,查询资源列表;5. Job 触发:支持定时、依赖、手工触

5、发调度 Job;6. 任务失败告警:当任务失败或者某个时间点未成功结束时,触发和短信报警;7.支持任务类型包括:shell、python、MapReduce、Hive、DataHub任务的调度及监控;8.可扩展性:Slave (JobWorker)可根据需要随时扩充;2.2 核心组件1.元数据库:Mysql,保存Job的配置、依赖关系、运行历史、资源配置、告2. JobClient :客户端类,对外的唯一接口;3. JobManager : Master,提供RPC服务,接收并处理JobClient提交的所 有操作;与元数据库通讯,维护Job元数据;负责任务的统一配置维护、触 发、调度、监控;

6、4. JobMonitor: 监控正在运行的 Job 状态、监控任务池、监控等待运行的 Job;5. JobWorker: Slave,从任务池中获取Job、负责启动并收集Job的执行状 态,以心跳方式发送给 JobManager;以上各组件下文中详细介绍。三、Job 元数据元数据存储于 Mysql 。LUJobClient1. 用户与系统交互的唯一接口;2. 封装提供给用户使用的所有接口,单例模式,吏用时候指定JobManager 的 RPC hostname 和端口号;3. 拥有 JobManager 的 RPC 代理,将用户提交的操作通过 RPC 调用 JobManager的相应接口进行

7、处理;4. 提供的接口包括:操作Job,包括增加,修改,删除,运行,杀死Job等;维护Job依赖关系; 配置、查询资源;查询Job信息,包括指定条件查询,如状态,JobID,时间等;查询Job依赖;五、JobManager (Master)任务调度中心系统的Master节点,负责所有任务的调度,分发,状态跟踪, 报警,资源管理等。5.1 RPCServer JobManager 自身为一个 RPCServer,为 JobClient 提供调用接口;为JobClient提供的RPC接口: Job操作类接口 :保存Job,根据JoblD获取Job,获取所有Job , 获取新的JoblD,删除Job

8、 ; Job 依赖关系维护接口:添加、删除 Job 依赖,查询 Job 的父子依 赖;查询类接口;查询正在运行的Job,查询Job的历史运行,查询一 个时间段的 Job 等;维护类接口 :停止JobManager,添加、修改、删除资源,获取资源列表;5.2 数据库管理服务类 JobStoreManager,封装所有与元数据库通讯的接口,用于Job元数据的持久化和查询。 使用数据库池; 接口列表:曲 aleanw selectMaxloblnstaimceldO: lomg* addlRescu rcefString, String, int): booleane updateResource(

9、String. Strmg. mt) - bool-san* die leteResou rcefString, Strirfcg): boolean geiAllResoijrce&O : List5.3 资源管理服务 ResourceManager,负责Job资源的计算和分配;资源包括:主机名/IP,可运行的任务类型,最大运行的任务数量;初始化将资源配置表中已分配的Job数全部设为0 ; 资源申请流程:资源配置表 根据Job类型,首先从资源配置表中获取可以运行该类型Job的节点、最多 可运行的Job数量、已分配出去的Job数量; 从上面获取的节点中取(max_job_cou nt - ru

10、 nnin g_job_cou nt ) 0,并按 照(max_job_count - running_job_count )降序排列,取第一条记录; 如果有返回主机名,表示有资源,则将该资源已分配Job数量+1 ; 返回主机名; 如果没有记录返回,则表示没有资源,返回null ; 资源释放流程: 根据传入的host name和job_type,将资源配置表中该记录已分配Job数量-1;5.4 Job依赖关系维护 Neo4jService使用Neo4j保存任务的依赖关系,供查询使用;当Job的依赖关系发生变化时,需要在Neo4j中做相应的维护;5.5 定时调度器 QuartzService维护

11、定时运行的Job,当Job到达任务触发时间时,提交Job运行;5.6 Job监控监控超时未成功执行的Job,触发告警(可依靠Quartz定时触发); 监控正在运行的 Job 列表,当 Job 长时间未更新时,做相应处理;监控待运行Job队列,并尝试提交Job ;监控任务池,从任务池中删除被拿走的Job ;5.7 告警服务 提供告警服务,目前只提供告警服务5.8 初始化流程 获取RPC host&port :从配置文件conf/master.xml中获取;构建 RPCServer ;初始化N eo4j服务;从数据库中初始化加载所有Job;从数据库中初始化job依赖; 初始化资源管理服务;构建Qu

12、artz服务;5.9 启动流程 初始化;启动 jobManagerRPCServer ; registerShutdownHook; 启动Neo4j服务线程;启动Quartz月服务线程;启动Job监控线程;5.10成功Job处理流程更新 Job 状态;获取该Job的一级子Job ,分别检查子Job的其他父Job ,如果父Job全部完成, 则提交该Job运行;如果有父Job未完成,则将该Job加入因前置Job未全部完 成而等待运行的 Job 队列5.11失败Job处理流程更新 Job 状态;告警;六、JobWorker (Slave)6.1 存数据结构正在运行的 JobExecutor 列表;6.2定期从获取可以运行的Job 定期从任务池获取可以运行的 Job 定期汇总各个 Job 状态,并更新;6.3执行Job 根据Job类型,构建相应的JobExecutor,执行并收集Job执行日志;七、核心流程7.1 Job维护流程 添加、修改 Job 删除 Job7.2 Job依赖维护流程添加 Job 依赖删除 Job 依赖Job依赖配置表-I 中删除

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号