ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:285.94KB ,
资源ID:10363346      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10363346.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(任务调度中心系统概要设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

任务调度中心系统概要设计.docx

1、任务调度中心系统概要设计任务调度中心系统当前版本作者修改记录更新时间版本修订人修改内容一、设计目的目前整个市场任务调度非常粗糙,基本仅靠Crontab来定时运行,日志清洗、日志校验、数据分析、入库各模块之间无有效依赖,经常由于前置任务出错或者未完成,后续的任务运行出错,并且对任务出错的监控不到位,造成分析数据不能及时入库,导致线上BUG。真实业务场景下合理的任务运行图:(图一)1.定时触发一个日志校验的Job,去检查清洗后的日志是否已经就绪;2.分析的JOB均依赖日志校验的Job,一旦日志校验的Job执行成功,则并发启动依赖其的分析Job1-4;3.入库JOB1依赖分析JOB1和分析JOB2,

2、如果这两个分析JOB全部执行成功,则启动执行入库JOB1;4.对于入库JOB2,如果分析JOB3和分析JOB4有一个未成功执行,则入库JOB2就不执行;一个复杂的任务依赖图:为了解决数据平台分配任务的稳定性,时效性,因此设计开发任务调度中心系统,旨在解决任务的统一配置,统一调度,统一监控告警等功能,减少开发人员的开发和维护成本,提高平台的稳定性。二、整体架构2.1 核心功能1.Job维护:添加、修改、删除、杀死Job;2.Job依赖关系维护:添加、修改、删除Job之间的依赖关系;3.查询类:查询Job列表、根据状态查询Job列表、查询Job的父子依赖等;4.资源维护:添加、修改、删除资源,查询

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

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

6、加、删除Job依赖,查询Job的父子依赖;查询类接口;查询正在运行的Job,查询Job的历史运行,查询一个时间段内的Job等;维护类接口:停止JobManager,添加、修改、删除资源,获取资源列表;5.2 数据库管理服务类JobStoreManager,封装所有与元数据库通讯的接口,用于Job元数据的持久化和查询。使用数据库链接池;接口列表:5.3 资源管理服务ResourceManager,负责Job资源的计算和分配;资源包括:主机名/IP,可运行的任务类型,最大运行的任务数量;初始化将资源配置表中已分配的Job数全部设为0;资源申请流程:根据Job类型,首先从资源配置表中获取可以运行该类

7、型Job的节点、最多可运行的Job数量、已分配出去的Job数量;从上面获取的节点中取(max_job_count running_job_count) 0,并按照(max_job_count running_job_count)降序排列,取第一条记录;如果有返回主机名,表示有资源,则将该资源已分配Job数量+1;返回主机名;如果没有记录返回,则表示没有资源,返回null;资源释放流程:根据传入的hostname和job_type,将资源配置表中该记录已分配Job数量-1;5.4 Job依赖关系维护Neo4jService使用Neo4j保存任务的依赖关系,供查询使用;当Job的依赖关系发生变化时

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

9、;从数据库中初始化job依赖;初始化资源管理服务;构建Quartz服务;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 内存数据结构正在运行的J

10、obExecutor列表;6.2 定期从获取可以运行的Job定期从任务池获取可以运行的Job定期汇总各个Job状态,并更新;6.3 执行Job根据Job类型,构建相应的JobExecutor,执行并收集Job执行日志;七、核心流程图7.1 Job维护流程添加、修改Job删除Job7.2 Job依赖维护流程添加Job依赖删除Job依赖7.3 资源维护流程添加、修改资源删除资源7.4 Job提交流程Job自动提交(定时触发和依赖触发)Job手动提交(由JobClient提交)7.5 Job执行流程7.6 Job监控流程监控任务池监控等待运行的Job监控正在运行的Job八、后台部署与运行8.1 安装

11、解压解压后目录结构: conf/ #配置文件 bin/ #执行脚本 lib/ #第三方jar包 Manager.jar #核心jar包8.2 数据库建库建表建库:赋权:建表: 8.3 配置conf/c3p0.propertiesc3p0数据库链接池。conf/mail.properties发送告警邮件配置。conf/master.propertiesJobManager配置文件。job_manager_rpc_host=172.16.0.1 /JobManager RPC运行主机ipjob_manager_rpc_port=2234 /JobManager RPC运行端口号job_monito

12、r_scan_period=10 /JobMonitor扫描数据库时间间隔conf/slave.propertiesJobWorker配置文件。job_worker_scan_period=5 /JobWorker线程扫描数据库间隔,单位:秒job_log_dir=/usr/local/skynet/logs /JobWorker记录的日志路径job_worker_jetty_port=9911 /JobWorker中Jetty服务端口号,用于查看Job运行日志job_working_directory=/tmp/skynet/ /job执行工作目录,各用户必须有可读写权限,chmod R 7

13、77 /tmp/skynetbin/net.sh配置export JAVA_HOME=/usr/local/jre1.7.0_67bin/monitor-net.sh系统监控脚本。配置export JAVA_HOME=/usr/local/jre1.7.0_67配置maillist=liu.xiaowen /当系统运行异常时,发给管理员邮件告警开放相关端口访问权限job_manager_rpc_port、job_worker_jetty_port配置环境变量NET_HOME,JAVA_HOME数据库中配置初始数据dmp_job_buseinss_type /业务类型dmp_resource_c

14、onfig /资源dmp_user /用户、用于前端页面登陆和权限控制8.4 运行运行JobManagerbin/net.sh start jm启动后,在net/下产生jm.log日志文件运行JobWorkerbin/net.sh start jw启动后,在net/下产生jw.log日志文件运行系统监控脚本bin/ monitor-net.sh 启动后,在net/下产生monitor.log日志文件(5分钟刷新一次)8.5 停止停止JobWorkerbin/net.sh stop jw停止JobManagerbin/net.sh stop jm /会将JobManager和系统监控(monit

15、or-net.sh)一起停止九、部署与运行9.1 安装将net.war拷贝至$TOMCAT_HOME/ webapps/9.2 配置开放8080端口配置tomcat数据库链接池:$TOMCAT_HOME/conf/ context.xml配置后台服务信息:$TOMCAT_HOME/ webapps/net/WEB-INF/classes/ jm.propertiesjob_manager_rpc_port=2234job_manager_rpc_host=172.16.0.19.3 运行运行tomcat即可。访问页面:http:/localhost:8080/net/用户名和密码直接在数据库dmp_user表中更新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1