大数据平台任务调度与监控系统

数据平台任务调度与监控系统
背景
⼤数据平台技术框架⽀持的开发语⾔多种多样,开发⼈员的背景差异也很⼤,这就产⽣出很多不同类型的程序(任务)运⾏在⼤数据平台之上,如:MapReduce、Hive、Pig、Spark、Java、Shell、Python等。
这些任务需要不同的运⾏环境,并且除了定时运⾏,各种类型之间的任务存在依赖关系,⼀张简单的任务依赖图如下:
任务调度依赖图
⽬前各业务的数据任务基本都是靠Crontab定时调度,各个任务之间的依赖仅靠简单的串⾏来实现。
这样做的问题:r516
很容易造成前⾯的任务未结束或者失败,后⾯的任务也运⾏起来,最终跑出错误的分析结果;
任务不能并发执⾏,增加任务执⾏的整体时间窗⼝;
任务管理和维护很不⽅便,不好统计任务的执⾏时间及运⾏⽇志;
异型耐火砖
托板缺乏及时有效的告警;
SkyNet调度监控系统,正是为了解决以上问题。
系统架构
⼤数据任务调度
名词解释
SkyNet任务调度监控系统的名称。
Job/任务⼀个程序运⾏单元,⽐如,⼀个MapReduce程序、⼀个Shell脚本等。
业务⽇期每个程序运⾏所处理的数据⽇期。
JobInstance/任务实例⼀次任务运⾏实例,因为⼀个任务在同⼀业务⽇期可能会运⾏多次。
资源任务运⾏的节点(主机)
DataHub数据交换机,⽤于异构数据源时间的数据交换。
系统模块
JobManager:SkyNet的Master,提供RPC服务,接收并处理JobClient/Web提交的所有操作;与元数据通讯,维护Job元数据;负责任务的统⼀配置维护、触发、调度、监控
JobMonitor: 监控正在运⾏的Job状态、监控任务池、监控等待运⾏的Job;
JobWorker:SkyNet的Slave,从任务池中获取Job、负责启动并收集Job的执⾏状态,维护⾄元数据库;
JobClient/Web:SkyNet客户端类,前端界⾯提供给⽤户,⽤作任务的配置、管理、监控等;
任务元数据:⽬前使⽤Mysql,保存Job的配置、依赖关系、运⾏历史、资源配置、告警配置等;
系统特性
分布式架构:容量和负载能⼒(JobWorker)可线性扩充,并可以跨外⽹部署(只需能访问元数据库即可);
⾼可⽤性:拥有主备Master,⼀旦主Master异常,备Master会接替主Master提供服务(后期实现);
⾼容错性:Master重新启动后,会将之前未完成的任务重新调度运⾏;
完善易⽤的Web⽤户界⾯:⽤于⽤户配置、提交、查询、监控任务及任务的依赖关系;
⽀持任意类型的任务:除了Hadoop⽣态圈的MapReduce、Hive、Pig等,还⽀持其他任何语⾔开发的任务,如Java、Shell、Python、Perl、Spark等;
完整的⽇志记录:收集并记录任务运⾏过程中产⽣的标准输出和标准错误,提供Http访问,⽤户可通过访问任务对应的⽇志Url来⽅便的访问任务运⾏⽇志;
任务之间的灵活依赖:可将任意⼀个任务作为⾃⼰的⽗任务进⾏依赖触发;
灵活多样的告警规则:除了失败告警,也⽀持任务超时未完成、任务超时未开始等告警规则;
页⾯展⽰汽车香水瓶
DashBoard:显⽰平台任务总体概况,资源总体概况
⼤数据任务调度
任务查询和维护:运行网
⼤数据任务调度
添加任务:
⼤数据任务调度陶瓷接线柱
查看任务依赖关系及运⾏状态:
⼤数据任务调度
查看任务运⾏状态及运⾏⽇志:
⼤数据任务调度
转载请注明: »

本文发布于:2024-09-22 08:30:13,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/307839.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:任务   监控   数据   依赖   系统   配置   告警
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议