一种基于生命周期模型的互联网大数据任务调度的系统及方法

文档序号:9929980阅读:243来源:国知局
一种基于生命周期模型的互联网大数据任务调度的系统及方法
【技术领域】
[0001]本发明涉及数据业务处理技术领域,尤其涉及一种基于生命周期模型的互联网大数据任务调度的系统及方法。
【背景技术】
[0002]大数据技术是近年来发展极为迅速的一个领域,是支撑现代互联网广告、电子商务以及020等主流互联网业务的重要基石。以互联网广告业务为例,仅2011至2014年,互联网广告的市场规模已经超过了报纸广告规模,名列第二位,市场规模连续保持高速增长。互联网业务的持续火热增长不断推动大数据技术的发展。
[0003]目前,主流的大数据解决方案是基于Hadoop集群的HDFS的分布式存储加上MapReduce、Spark等分布式计算引擎。大数据生产业务一般分为如下环节:
[0004](I) ETL数据入库,将外部数据导入集群,并做数据抽取、清洗变换,并加载到大数据仓库;(2)业务数据分析,在ETL环节产出的基础数据上,结合业务进行各种分析以及高层信息抽取;(3)业务监控和分析报表,根据业务高层分析数据,给出业务监控所需的时间序列数据已经汇总报表数据;(4)机器学习模型训练,针对业务,训练机器学习模型,进行分类、回归预测等任务;(5)业务数据生产,产出业务所需的数据。
[0005]—个互联网业务的背后,通常有成千上万的大数据分析处理任务作为支撑,而这些数据任务之间的关系错综复杂,需要一套任务调度系统进行管理。任务调度器的主要工作包括但不限于:(I)提供数据任务的执行监控和报警功能;(2)在数据任务彼此相互依赖时,提供依赖检查,确保每个数据任务运行时,其前置依赖任务都已经完成;(3)任务批次管理和回溯。
[0006]—般任务调度系统通常使用DAG描述任务之间的依赖关系,并计算任务的执行顺序。
[0007]目前常见的任务调度系统有:
[0008](I )oozie: 一款开源的工作流引擎,主要用来管理hadoop任务。Oozie将hadoop任务抽象成一个有向无环图(DAG),并按照DAG上的依赖关系,将任务发布到Hadoop上执行。
[0009](2)Azkaban:也是一款开源工作流引擎,不同于Oozie的是,Azkaban提供用户友好的图形化环境,能够更快更有效的设置和编辑工作流。
[0010]上述数据任务调度系统目前存在如下问题:(一)使用困难,用户难以直接有效的和系统交互;(二)缺乏严格的调度逻辑,虽然都通过有向无环图(DAG)进行任务依赖的管理,但实际调度作业中,难以在DAG上进行状态跟踪和恢复;(三)目前主流任务调度器均是通过人工直接定义DAG的方式,来进行任务调度。这样做的一个主要弊端是DAG定义过程复杂,并且容易出错。

【发明内容】

[0011]本发明的目的是针对现有技术的不足,提供一种一种基于生命周期模型的互联网大数据任务调度的系统及方法。
[0012]本发明的目的是通过以下技术方案实现的:
[0013]本发明的第一个目的是构建一种基于生命周期模型的互联网大数据任务调度的系统,包括:
[0014]A、建立数据任务生命周期模型:数据任务生命周期包括:
[0015]数据需求阶段:需求人员提出数据需求;
[0016]数据开发阶段:开发人员完成数据任务的设计;
[0017]数据执行阶段:运维人员完成数据任务的上线、执行和监控;
[0018]数据执行结果阶段:运维人员进行数据任务执行结果的回溯和修正。
[0019]B、设计一种基于数据任务生命周期模型的任务表达方法:所述任务表达方法包括数据任务声明、数据任务定义、数据任务实例的表达方法,分别为:
[0020]任务声明=任务名(形参列表);
[0021]任务定义=任务名(形参列表[依赖名I(依赖形参I),依赖名2(依赖形参2)…];
[0022]任务实例=任务名(实参列表[依赖名I(依赖实参I),依赖名2 (依赖实参2)…]。
[0023]C、构建任务调度系统,包括:界面层、存储层、元数据层和执行层;
[0024]所述界面层用来储存和管理任务声明;
[0025]所述存储层用来存储和管理任务定义和任务的实现代码;
[0026]所述元数据层用来存储和管理任务实例,元数据层将任务实例以及任务实例之间的依赖关系抽象成一张属性图,属性图中的节点表示任务实例,节点属性包括任务实例的参数;属性图中的边表示任务实例之间的依赖关系;
[0027]所述的执行层用来调度属性图中需要执行的任务实例。
[0028]上述的一种基于生命周期模型的互联网大数据任务调度的系统,其中,所述执行层中由用于任务分发的主节点和用于任务处理的工作节点构成,所述主节点检测元数据层,将可执行的任务实例分发给工作节点。
[0029]上述的一种基于生命周期模型的互联网大数据任务调度的系统,其中,所述工作节点包含存储层发送的实现代码。
[0030]本发明的第二个目的是提供一种基于生命周期模型的互联网大数据任务调度的方法,是基于上述的一种基于生命周期模型的互联网大数据任务调度的系统的调度方法,步骤包括:
[0031](I)运维人员或者采用自动化脚本触发某个任务实例执行;
[0032](2)解析任务实例,获取任务实参,并通过任务实参推导依赖任务;
[0033](3)检查依赖任务是否存在,若存在并已完成,则调度运行任务实例,任务实例进入“就绪”状态;若存在但未完成,则任务实例进入“等待”状态;若依赖任务不存在,则创建任务实例,并触发执行层执行依赖任务;
[0034](5)执行层检查集群资源空闲情况,若有资源可用,则从元数据层的属性图中取等待时间最长的任务实例进入集群执行。
[0035]上述的一种基于生命周期模型的互联网大数据任务调度的方法,还包括根据元数据层的属性图推导任务实例对应的属性图子图,根据任务实例的属性图子图调度任务实例,步骤包括:
[0036](I)解析任务实例,读取任务实例的任务名和任务实参;
[0037](2)根据任务实例的任务名,从存储层获取对应的任务定义;
[0038](3)根据任务定义,获取任务依赖的依赖名和依赖形参,带入实参,得到任务依赖的任务实例;
[0039](5)以该任务实例以及依赖的任务实例为节点,以依赖关系为边,构建属性图子图。
[0040]综上所述,由于采用了上述技术方案,本发明与现有技术相比,有如下优点和突出效果:
[0041](I)通过建立数据任务生命周期模型和基于生命周期模型的统一任务表达方法,可自动推导任务依赖关系,构建任务依赖属性图。相比传统手动构建DAG的方式,自动化程度更高、可靠性更好。
[0042](2)实例化任务、基于依赖关系的属性图的调度任务实例,可更合理的利用集群资源。
[0043](3)数据任务开发完成后,只需要提交不同的实例化参数,即可控制任务执行,效率更高、更智能化。
【附图说明】
[0044]图1是本发明一种基于生命周期模型的互联网大数据任务调度的系统及方法的原理图。
[0045]图2是本发明的数据任务生命周期模型原理图。
[0046]图3是本发明的任务实例的状态转移过程示意图。
[0047]图4是本发明的执行层与元数据层、存储层的交互的原理图。
[0048]图5是本发明的执行层、元数据层、存储层的交互的原理图。
【具体实施方式】
[0049]下面结合附图对本发明的【具体实施方式】作详细介绍。
[0050]本发明的第一个目的是构建一种基于生命周期模型的互联网大数据任务调度的系统,请参见图1,包括:
[0051]A、首先,建立数据任务生命周期模型。
[0052]请参见图2,一个数据任务的整个生命周期中,有三类人员进行参与:需求人员、开发人员、运维人员。
[0053]数据任务生命周期包括四个阶段:
[0054]数据需求阶段:需求人员提出数据需求。
[0055]数据开发阶段:开发人员完成数据任务的设计。
[0056]数据执行阶段:运维人员完成数据任务的上线、执行和监控。
[0057]数据执行结果阶段:运维人员进行数据任务执行结果的回溯和修正。在数据任务的结果不能满足需求或者不符合预期时,需要回溯到生命周期前面某个阶段重新开始。
[0058]B、设计一种基于数据任务生命周期模型的任务表达方法,此表达方法贯穿整个任务声明周期,包括数据任务声明、数据任务定义、数据任务实例的表达方法。
[0059]任务声明是需求人员根据业务,提炼出来的任务抽象,任务声明=任务名(形参列表);例如:etl_dsp_log(date,hour,platform)表示一个DSP日志的ETL任务,该任务有三个参数:日期,小时和平台。
[0060]任务定义是开发人员根据任务声明和需求,给出的任务描述性定义,其中描述性定义是指任务依赖和运行参数,任务定义=任务名(形参列表)—[依赖名I (依赖形参I),依赖名2(依赖形参2)…]。例如:dsp_log_safe(date ,hour ,platform) [etl_dsp_log(date,hour ,platform),ant i_spam( date,hour,plat), f ilter_rule(date)],表不一个生产可靠(18卩日志的数据任务,依赖(18
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1