大数据分布式任务调度系统的制作方法

文档序号:16067434发布日期:2018-11-24 12:48阅读:428来源:国知局

本发明涉及分布式任务调动技术领域,具体地说是一种大数据分布式任务调度系统。

背景技术

当前正处于大数据技术飞速发展的时代,各行业在使用大数据的同时也面临着许多技术问题,其中如何正确高效的解决大数据集群任务的调度,如何汇总分析调度历史记录,如何降低集群管理难度,提升易维护性也是各行业面临的一项难题;在如今技术领域尚未形成一个标准化的调度系统,究其原因,一方面来自于各行业业务的千差万别,另一方面也取决于任务调度系统的定制化与业务复杂性。除了crontab、quartz这类偏单机的定时调度程序或类库,开源分布式任务调度系统也有很多,比较知名的有oozie,azkaban等,像阿里的schedulerx,腾讯的lhotse,一般都是自主研发或在开源的基础上进行一些封装和改造,比较多的公司采取了封装oozie的方式,但是,存在的弊端如下:1、使用场景复杂多样,开发人员开发成本过高;2、偏向于单结点调度,使用场景不适用互相独立的大数据集群和应用集群;3、集群调度存在任务重复调度的问题;4、在应对简易调度需求时,上述系统略显笨重,且无法快速部署与使用,同时其架构的复杂性也增加了异常或错误发生的可能性;5、集群中出现的调度系统和应用系统竞争资源,降低双方系统稳定性的问题;6、集群的调度信息、日志收集、分析、展示困难的问题。



技术实现要素:

本发明的技术任务是针对上述问题,为了建设满足简易需求的大数据调度需求,提升其快速部署与使用效率,在适用行业大数据应用场景的同时,降低使用成本增加调度系统的通用性,本发明提出了一种易实施性、简单易用的大数据分布式任务调度系统。

本发明解决其技术问题所采用的技术方案是:大数据分布式任务调度方法,具体方法包括通过代理服务器实现分布式任务调度,通过采集集群、流式集群和分布式消息队列实现调度日志采集和汇总,将查询结果送达web前端进行分析与展示。

进一步的,

s1、用户通过应用服务器配置调度规则;

s2、应用服务器根据调度规则配置代理服务器;

s3、代理服务器提交调度任务至集群;

s4、集群将任务日志发送至日志服务器;

s5、采集集群收集任务日志;

s6、流式计算集群推送或拉取任务日志;

s7、应用服务器远程提交任务日志处理程序至流式计算集群;

s8、流式计算集群汇总任务日志结果并存入数据库服务器;

s9、应用服务器返回、增删、改查任务日志结果;

s10、应用服务器将查询结果送达web前端进行分析与展示。

大数据分布式任务调度系统,包括任务调度系统和调度日志采集汇总系统;

所述的任务调度系统,基于insighthd大数据平台,利用类unix系统中的crontab实现分布式任务调度;

所述的调度日志采集汇总系统,用于调度日志采集和汇总,并将采集和汇总结果送达web前端进行分析、展示;

所述的任务调度系统,包括hadoop集群模块、应用服务器模块、关系型数据库模块、调度代理服务器模块和日志收集服务器模块。

进一步的,优选的结构为,所述的调度日志采集汇总系统,包括采集集群、分布式消息队列和流式计算集群;

所述的采集集群,为在日志服务器部署flume组件并进行初始化监听,用于采集任务执行日志文件,并发送到分布式消息队列中作为流式计算的数据源;

所述的分布式消息队列,为在日志服务器部署kafka组件,使用发布订阅模式,将分布式消息队列作为采集集群所抽取日志的缓冲层,分布式消息队列将日志数据发送到流式计算集群;

所述的流式计算集群,为在日志服务器部署storm组件,并提交日志解析代码,根据实际需要形成处理日志的拓扑,解析调度任务的状态及执行时间;然后将解析结果回写到关系数据库模块,将解析结果与任务调度元信息关联,建立映射关系,通过web页面提供给用户使用。

进一步的,优选的结构为,所述的任务调度系统还包括第三方系统监控模块;

所述的第三方系统监控模块,用于监控crond服务,失败自动重启时,保留系统服务失败日志,并将日志通知管理员。

进一步的,优选的结构为,所述的应用服务器模块,用于部署任务调度系统管理程序,具有配置、管理、监控任务的功能,将任务配置完成后提交到调度代理服务器模块;包括定时触发任务信息和任务之间的依赖关系信息;

所述的关系型数据库模块,用于存储定时任务元数据信息,接收应用服务器模块的定时触发任务信息和任务之间的依赖关系信息,并且提供增加、删除、查询和修改的接口。

进一步的,优选的结构为,所述的调度代理服务器模块,用于向hadoop集群模块提交分布式任务;

所述的日志收集服务器模块,用于存储调度代理服务器模块任务执行产生的调度日志和调度记录。

本发明的大数据分布式任务调度系统和现有技术相比,有益效果如下:

1、本系统利用类unix系统中自带的crontab设计了一种分布式大数据任务调度系统,并借助第三方组件提供了调度日志的采集、汇总、分析、展示等扩展性功能;

2、解耦效果,将作业调度模块与作业管理应用隔离,有效降低二者之间的相互影响;

3、易用效果,从易用性角度考虑,极大的降低了开发成本,提高开发效率,更加适合税务大数据使用场景,同时可以使用第三方系统监控组件监控代理服务器性能指标;

4、去重效果,解决了任务重复调用问题;

5、监控效果,有效分析任务调度状态及历史记录并展示。

附图说明

下面结合附图对本发明进一步说明。

附图1为大数据分布式任务调度系统的原理示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明。

insighthd,浪潮信息出品的大数据开发套件,它简化了hadoop生态系统部署,并提供监控功能。crontab,类unix系统的定时调度模块,依赖crond服务;apachestorm,apache旗下免费开源的实时流式计算引擎,下文简称storm;apacheflume,apache旗下高可用、强稳定性的分布式日志采集聚合系统,下文简称flume;apachekafka,apache旗下分布式流式的消息发布订阅系统,下文简称kafka;任务调度系统,按照一定的时间和依赖规则,有规律的启动执行各类任务(含程序、脚本等)的应用系统。

本发明为大数据分布式任务调度系统,

实施例1:

大数据分布式任务调度系统具体实施方案分为以下步骤:

s1、用户通过应用服务器配置调度规则;

s2、应用服务器根据调度规则配置代理服务器;

s3、代理服务器提交调度任务至集群;

s4、集群将任务日志发送至日志服务器;

s5、采集集群收集任务日志;

s6、流式计算集群推送或拉取任务日志;

s7、应用服务器远程提交任务日志处理程序至流式计算集群;

s8、流式计算集群汇总任务日志结果并存入数据库服务器;

s9、应用服务器返回、增删、改查任务日志结果;

s10、应用服务器将查询结果送达web前端进行分析与展示。

大数据分布式任务调度系统,包括任务调度系统和调度日志采集汇总系统;

所述的任务调度系统,基于insighthd大数据平台,利用类unix系统中的crontab实现分布式任务调度;

所述的调度日志采集汇总系统,用于调度日志采集和汇总,并将采集和汇总结果送达web前端进行分析、展示;

所述的任务调度系统,包括hadoop集群模块、应用服务器模块、关系型数据库模块、调度代理服务器模块和日志收集服务器模块。hadoop集群模块,利用insighthd大数据开发套件,搭建hadoop生态环境,配置相关组件。应用服务器模块,在本服务器或者集群中部署任务调度系统管理程序,程序具有配置、管理、监控任务的功能,分为定时触发和依赖触发,可以自定义任务之间的依赖,配置完成后提交到调度系统服务器动态生成对应的脚本。关系型数据库,用于存储定时任务元数据信息,包括任务的定时触发信息及任务之间的依赖关系,并且提供增加、删除、查询、修改的接口;调度代理服务器模块,通过本服务器向大数据集群中提交分布式任务,将调度系统和应用系统分离,减少调度与应用系统之间资源竞争、互相影响,设置crond服务开机自启动,用于扫描定时任务信息;将定时任务配置及依赖关系写到数据库,同时写到此服务器的模板脚本中;任务执行前判断依赖服务是否已执行完成,完成则启动定时任务,否则发送告警,终止对应调度任务。日志收集服务器(集群)模块,本服务器存储调度系统任务执行产生的调度日志和调度记录,在调度代理服务器里设置执行任务的日志重定向,为便于区分,以执行时间命名日志文件名。

所述的调度日志采集汇总系统,包括采集集群、分布式消息队列和流式计算集群;

采集集群,即flume组件部署,本服务器的角色为日志采集者,在日志服务器(集群)部署flume且初始化监听服务,用于采集任务执行日志文件,并发送到分布式消息队列(kafka)中作为流式计算的数据源。分布式消息队列,即kafka组件部署,利用insighthd部署kafka集群,使用发布订阅模式,利用具有高吞吐、可横向扩展等特性的kafka作为flume所抽取日志的缓冲层,kafka将日志数据发送到storm集群做处理。

流式计算集群,即storm集群部署,利用insighthd大数据开发套件,部署storm集群,并提交日志解析代码,形成处理日志的拓扑(可根据实际需要定制开发),解析调度任务的状态、执行时间;将解析结果回写到关系型数据库(如oracle)中,将其与任务调度元信息关联,建立映射关系,通过web页面提供给用户使用。

所述的任务调度系统还包括第三方系统监控模块;

所述的第三方系统监控模块,用于监控crond服务,失败自动重启时,保留系统服务失败日志,并将日志以邮件或者短信方式通知管理员。例如zabbix或shell脚本监控crond服务。

本发明有效的解决了税务大数据任务调度系统需求,通过crontab简单快捷的实现分布式任务调度,使用flume+kafka+storm实现了调度日志采集和汇总,结果送达web前端进行分析与展示。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1