首页> 中国专利> 一种基于生命周期模型的互联网大数据任务调度的系统及方法

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

摘要

一种基于生命周期模型的互联网大数据任务调度的系统及方法,调度系统的构建过程包括:通过建立数据任务生命周期模型、设计基于数据任务生命周期模型的任务表达方法、构建任务调度系统,任务调度系统,包括:界面层、存储层、元数据层和执行层。元数据层将任务实例以及任务实例之间的依赖关系抽象成一张属性图,属性图中的节点表示任务实例,节点属性包括任务实例的参数;属性图中的边表示任务实例之间的依赖关系;通过属性图来调度任务实例。本发明可自动推导任务依赖关系,自动化程度更高、可靠性更好。数据任务开发完成后,只需要提交不同的实例化参数,即可控制任务执行,效率更高、更智能化。

著录项

  • 公开/公告号CN105719126A

    专利类型发明专利

  • 公开/公告日2016-06-29

    原文格式PDF

  • 申请/专利权人 上海晶赞科技发展有限公司;

    申请/专利号CN201610043825.0

  • 发明设计人 汤奇峰;侯杰;

    申请日2016-01-22

  • 分类号G06Q10/10(20120101);

  • 代理机构上海翰信知识产权代理事务所(普通合伙);

  • 代理人张维东

  • 地址 200072 上海市闸北区共和新路912号1501-5室

  • 入库时间 2023-12-18 15:49:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-10

    授权

    授权

  • 2016-07-27

    实质审查的生效 IPC(主分类):G06Q10/10 申请日:20160122

    实质审查的生效

  • 2016-06-29

    公开

    公开

说明书

技术领域

本发明涉及数据业务处理技术领域,尤其涉及一种基于生命周期模型的互联网大数据任务调度的系统及方法。

背景技术

大数据技术是近年来发展极为迅速的一个领域,是支撑现代互联网广告、电子商务以及020等主流互联网业务的重要基石。以互联网广告业务为例,仅2011至2014年,互联网广告的市场规模已经超过了报纸广告规模,名列第二位,市场规模连续保持高速增长。互联网业务的持续火热增长不断推动大数据技术的发展。

目前,主流的大数据解决方案是基于Hadoop集群的HDFS的分布式存储加上MapReduce、Spark等分布式计算引擎。大数据生产业务一般分为如下环节:

(1)ETL数据入库,将外部数据导入集群,并做数据抽取、清洗变换,并加载到大数据仓库;(2)业务数据分析,在ETL环节产出的基础数据上,结合业务进行各种分析以及高层信息抽取;(3)业务监控和分析报表,根据业务高层分析数据,给出业务监控所需的时间序列数据已经汇总报表数据;(4)机器学习模型训练,针对业务,训练机器学习模型,进行分类、回归预测等任务;(5)业务数据生产,产出业务所需的数据。

一个互联网业务的背后,通常有成千上万的大数据分析处理任务作为支撑,而这些数据任务之间的关系错综复杂,需要一套任务调度系统进行管理。任务调度器的主要工作包括但不限于:(1)提供数据任务的执行监控和报警功能;(2)在数据任务彼此相互依赖时,提供依赖检查,确保每个数据任务运行时,其前置依赖任务都已经完成;(3)任务批次管理和回溯。

一般任务调度系统通常使用DAG描述任务之间的依赖关系,并计算任务的执行顺序。

目前常见的任务调度系统有:

(1)oozie:一款开源的工作流引擎,主要用来管理hadoop任务。Oozie将hadoop任务抽象成一个有向无环图(DAG),并按照DAG上的依赖关系,将任务发布到Hadoop上执行。

(2)Azkaban:也是一款开源工作流引擎,不同于Oozie的是,Azkaban提供用户友好的图形化环境,能够更快更有效的设置和编辑工作流。

上述数据任务调度系统目前存在如下问题:(一)使用困难,用户难以直接有效的和系统交互;(二)缺乏严格的调度逻辑,虽然都通过有向无环图(DAG)进行任务依赖的管理,但实际调度作业中,难以在DAG上进行状态跟踪和恢复;(三)目前主流任务调度器均是通过人工直接定义DAG的方式,来进行任务调度。这样做的一个主要弊端是DAG定义过程复杂,并且容易出错。

发明内容

本发明的目的是针对现有技术的不足,提供一种一种基于生命周期模型的互联网大数据任务调度的系统及方法。

本发明的目的是通过以下技术方案实现的:

本发明的第一个目的是构建一种基于生命周期模型的互联网大数据任务调度的系统,包括:

A、建立数据任务生命周期模型:数据任务生命周期包括:

数据需求阶段:需求人员提出数据需求;

数据开发阶段:开发人员完成数据任务的设计;

数据执行阶段:运维人员完成数据任务的上线、执行和监控;

数据执行结果阶段:运维人员进行数据任务执行结果的回溯和修正。

B、设计一种基于数据任务生命周期模型的任务表达方法:所述任务表达方法包括数据任务声明、数据任务定义、数据任务实例的表达方法,分别为:

任务声明=任务名(形参列表);

任务定义=任务名(形参列表)→[依赖名1(依赖形参1),依赖名2(依赖形参2)…];

任务实例=任务名(实参列表)→[依赖名1(依赖实参1),依赖名2(依赖实参2)…]。

C、构建任务调度系统,包括:界面层、存储层、元数据层和执行层;

所述界面层用来储存和管理任务声明;

所述存储层用来存储和管理任务定义和任务的实现代码;

所述元数据层用来存储和管理任务实例,元数据层将任务实例以及任务实例之间的依赖关系抽象成一张属性图,属性图中的节点表示任务实例,节点属性包括任务实例的参数;属性图中的边表示任务实例之间的依赖关系;

所述的执行层用来调度属性图中需要执行的任务实例。

上述的一种基于生命周期模型的互联网大数据任务调度的系统,其中,所述执行层中由用于任务分发的主节点和用于任务处理的工作节点构成,所述主节点检测元数据层,将可执行的任务实例分发给工作节点。

上述的一种基于生命周期模型的互联网大数据任务调度的系统,其中,所述工作节点包含存储层发送的实现代码。

本发明的第二个目的是提供一种基于生命周期模型的互联网大数据任务调度的方法,是基于上述的一种基于生命周期模型的互联网大数据任务调度的系统的调度方法,步骤包括:

(1)运维人员或者采用自动化脚本触发某个任务实例执行;

(2)解析任务实例,获取任务实参,并通过任务实参推导依赖任务;

(3)检查依赖任务是否存在,若存在并已完成,则调度运行任务实例,任务实例进入“就绪”状态;若存在但未完成,则任务实例进入“等待”状态;若依赖任务不存在,则创建任务实例,并触发执行层执行依赖任务;

(5)执行层检查集群资源空闲情况,若有资源可用,则从元数据层的属性图中取等待时间最长的任务实例进入集群执行。

上述的一种基于生命周期模型的互联网大数据任务调度的方法,还包括根据元数据层的属性图推导任务实例对应的属性图子图,根据任务实例的属性图子图调度任务实例,步骤包括:

(1)解析任务实例,读取任务实例的任务名和任务实参;

(2)根据任务实例的任务名,从存储层获取对应的任务定义;

(3)根据任务定义,获取任务依赖的依赖名和依赖形参,带入实参,得到任务依赖的任务实例;

(5)以该任务实例以及依赖的任务实例为节点,以依赖关系为边,构建属性图子图。

综上所述,由于采用了上述技术方案,本发明与现有技术相比,有如下优点和突出效果:

(1)通过建立数据任务生命周期模型和基于生命周期模型的统一任务表达方法,可自动推导任务依赖关系,构建任务依赖属性图。相比传统手动构建DAG的方式,自动化程度更高、可靠性更好。

(2)实例化任务、基于依赖关系的属性图的调度任务实例,可更合理的利用集群资源。

(3)数据任务开发完成后,只需要提交不同的实例化参数,即可控制任务执行,效率更高、更智能化。

附图说明

图1是本发明一种基于生命周期模型的互联网大数据任务调度的系统及方法的原理图。

图2是本发明的数据任务生命周期模型原理图。

图3是本发明的任务实例的状态转移过程示意图。

图4是本发明的执行层与元数据层、存储层的交互的原理图。

图5是本发明的执行层、元数据层、存储层的交互的原理图。

具体实施方式

下面结合附图对本发明的具体实施方式作详细介绍。

本发明的第一个目的是构建一种基于生命周期模型的互联网大数据任务调度的系统,请参见图1,包括:

A、首先,建立数据任务生命周期模型。

请参见图2,一个数据任务的整个生命周期中,有三类人员进行参与:需求人员、开发人员、运维人员。

数据任务生命周期包括四个阶段:

数据需求阶段:需求人员提出数据需求。

数据开发阶段:开发人员完成数据任务的设计。

数据执行阶段:运维人员完成数据任务的上线、执行和监控。

数据执行结果阶段:运维人员进行数据任务执行结果的回溯和修正。在数据任务的结果不能满足需求或者不符合预期时,需要回溯到生命周期前面某个阶段重新开始。

B、设计一种基于数据任务生命周期模型的任务表达方法,此表达方法贯穿整个任务声明周期,包括数据任务声明、数据任务定义、数据任务实例的表达方法。

任务声明是需求人员根据业务,提炼出来的任务抽象,任务声明=任务名(形参列表);例如:etl_dsp_log(date,hour,platform)表示一个DSP日志的ETL任务,该任务有三个参数:日期,小时和平台。

任务定义是开发人员根据任务声明和需求,给出的任务描述性定义,其中描述性定义是指任务依赖和运行参数,任务定义=任务名(形参列表)→[依赖名1(依赖形参1),依赖名2(依赖形参2)…]。例如:dsp_log_safe(date,hour,platform)[etl_dsp_log(date,hour,platform),anti_spam(date,hour,plat),filter_rule(date)],表示一个生产可靠dsp日志的数据任务,依赖dsp日志etl任务(etl_dsp_log(date,hour,platform)),反垃圾流量任务(anti_spam(date,hour,plat))和规则名单任务(filter_rule(date))。

任务实例是运维人员在启动任务时使用实参替换任务定义中的形参后,所得到的任务表达,任务实例=任务名(实参列表)→[依赖名1(依赖实参1),依赖名2(依赖实参2)…]。例如,在20151010日09时,运维人员通过定时任务系统启动如下任务实例:dsp_log_safe(20151010,09,‘baidu.com’),则可根据任务定义推导出如下依赖关系:dsp_log_safe(20151010,09,‘baidu.com’)→[etl_dsp_log(20151010,09,‘baidu.com’),anti_spam(20151010,09,‘baidu.com’),filter_rule(20151010)]。

C、构建任务调度系统,包括:界面层、存储层、元数据层和执行层;

界面层用来储存和管理任务声明,用户可以在界面层向储存层发出任务实例化指令,并查看任务实例及状态。

存储层用来存储和管理任务定义和任务的实现代码,并将实现代码分发到执行层。

元数据层是调度系统的核心,用来存储和管理任务实例。元数据层将任务实例以及任务实例之间的依赖关系抽象成一张属性图,属性图中的节点表示任务实例,节点属性包括任务实例的参数;属性图中的边表示任务实例之间的依赖关系,任务调度的主要逻辑都发生在这张属性图上。

执行层用来调度属性图中需要执行的任务实例。

本发明的任务调度系统,其任务调度主要发生在元数据层。本发明提供了一种基于生命周期模型的互联网大数据任务调度的系统的调度方法,具体包括:

在元数据层的属性图上,每个节点以其任务实例对应的表达方法为标示。给定任意一个任务实例,可通过如下过程推导该任务实例对应的属性图子图:

(1)解析任务实例,读取任务实例的任务名和任务实参;

(2)根据任务实例的任务名,从存储层获取对应的任务定义;

(3)根据任务定义,获取任务依赖的依赖名和依赖形参,带入实参,得到任务依赖的任务实例;

(5)以该任务实例以及依赖的任务实例为节点,以依赖关系为边,构建属性图子图。

根据上述属性图子图中节点的任务实例,与元数据层已有的属性图,就可将一个任务实例加入调度。调度任务实例的具体步骤包括:

(1)运维人员或者采用自动化脚本触发某个任务实例执行;

(2)解析任务实例,获取任务实参,并通过任务实参推导依赖任务;

(3)检查依赖任务是否存在,若存在并已完成,则调度运行任务实例,任务实例进入“就绪”状态;若存在但未完成,则任务实例进入“等待”状态;若依赖任务不存在,则创建任务实例,并触发执行层执行依赖任务;

(5)执行层检查集群资源空闲情况,若有资源可用,则从元数据层的属性图中取等待时间最长的任务实例进入集群执行。

元数据层中属性图的每个节点都存储了任务实例的状态,任务实例的状态转移过程如图3所示。

请参见图4,本发明的执行层由用于任务分发的主节点和用于任务处理的工作节点构成,主节点轮询元数据层,查询依赖均已具备的任务实例,将可执行的任务实例分发给空闲的工作节点。工作节点解析任务实例,并可向存储层请求任务数据,通过元数据层的属性图和推导的该任务实例的属性图子图对任务实例进行调度,并更新任务实例在元数据层中的任务状态。

请参见图5,执行层中的主节点用于任务轮询,决定哪些任务实例可以执行,工作节点从主节点获取可执行的任务实例,并创建任务的回溯,完成任务实例的计算。工作节点在创建任务的回溯时,从元数据层获取任务实例的实参,从存储层获取任务定义、代码。执行完毕后,工作节点会更新任务实例在元数据层中的状态。

结合任务实例的状态,属性图上可执行如下调度策略:

调度就绪的任务:获取依赖已经就绪,可以执行的任务实例,既查询属性图上依赖全部处于完成状态的节点。

回溯某个任务及被其影响的任务:根据任务实例的表达方法查询要回溯的任务节点,并根据依赖关系递归查询受影响的任务节点。

回溯某个任务以及它的依赖:根据任务实例的表达方法查询要回溯的任务,并根据依赖关系递归查询所依赖的任务。

综上所述,由于采用了上述技术方案,本发明与现有技术相比,有如下优点和突出效果:

(1)通过建立数据任务生命周期模型和基于生命周期模型的统一任务表达方法,可自动推导任务依赖关系,构建任务依赖属性图。相比传统手动构建DAG的方式,自动化程度更高、可靠性更好。

(2)实例化任务、基于依赖关系的属性图的调度任务实例,可更合理的利用集群资源。

(3)数据任务开发完成后,只需要提交不同的实例化参数,即可控制任务执行,效率更高、更智能化。

以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡依本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号