大数据作业调度方法、平台、设备和介质技术

技术编号:21183917 阅读:19 留言:0更新日期:2019-05-22 14:49
本申请公开了一种大数据作业调度方法、平台、设备和介质,用以解决现有技术通过shell脚本控制多个作业顺序执行的方式中顺序的依赖控制难以预先定义,而且出错率高的技术问题。所述大数据作业调度方法包括:接收多个作业以及所述多个作业的调度信息;根据所述多个作业的调度信息,构建所述多个作业之间的调度依赖关系;基于所述调度依赖关系,依次提交所述多个作业。

Large Data Job Scheduling Method, Platform, Equipment and Media

This application discloses a large data job scheduling method, platform, equipment and media to solve the technical problems of difficult predefinition of sequence dependency control and high error rate in the existing technology of controlling multiple job execution sequence by shell script. The large data job scheduling method includes: receiving scheduling information of multiple jobs and the multiple jobs; constructing scheduling dependencies among the multiple jobs according to scheduling information of the multiple jobs; and submitting the multiple jobs in turn based on the scheduling dependencies.

【技术实现步骤摘要】
大数据作业调度方法、平台、设备和介质
本申请涉及大数据
,尤其涉及一种大数据作业调度方法、平台、设备和计算机可读存储介质。
技术介绍
大数据,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,该数据集合通常是万亿或艾字节(Exabyte,EB)级别。大数据分析是在研究大量数据的过程中寻找模式、相关性和其他有用的信息,其可以帮助企业更好地适应变化,并做出更明智的决策。目前,大数据基础软件,例如:Hadoop、Spark,都提供了作业的管理能力,从作业创建、作业运行直到作业结束。在作业运行过程中,支持串行运行以及并行运行。但是如果要运行多个作业,通常需要借助于Shell脚本,例如:在Shell脚本里面编写顺序执行作业的命令行来控制多个作业的顺序执行,但是在实际使用时,由于很多作业通常需要异步提交,从而导致顺序的依赖控制难以预先定义,出错率高。综上所述,现有技术通过shell脚本控制多个作业顺序执行的方式中顺序的依赖控制难以预先定义,而且出错率高。
技术实现思路
本申请实施例提供了一种大数据作业调度方法、平台、设备和计算机可读存储介质,以解决现有技术通过shell脚本控制多个作业顺序执行的方式中顺序的依赖控制难以预先定义,而且出错率高的技术问题。根据本申请实施例的一方面,提供一种大数据作业调度方法,包括:接收多个作业以及多个作业的调度信息;根据多个作业的调度信息,构建多个作业之间的调度依赖关系;基于调度依赖关系,依次提交多个作业。根据本申请实施例的另一方面,提供一种大数据作业调度平台,包括:接收模块,用于接收多个作业以及多个作业的调度信息;构建模块,用于根据多个作业的调度信息,构建多个作业之间的调度依赖关系;提交模块,用于基于调度依赖关系,依次提交多个作业。根据本申请实施例的又一方面,提供一种大数据作业调度设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如本申请实施例中任一项的方法。根据本申请实施例的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如本申请实施例中任一项的方法。本申请实施例中,接收多个作业以及多个作业的调度信息之后,在提交多个作业之前,根据多个作业的调度信息,构建多个作业之间的调度依赖关系,然后基于构建的调度依赖关系,依次提交多个作业。通过构建多个作业之间的调度依赖关系,从而可以依据构建的调度依赖关系,依次提交多个作业,实现多个作业的顺序控制,而且根据多个作业的调度信息构建多个作业之间的调度依赖关系,避免预先定义多个作业的顺序控制,能有效降低顺序控制的出错率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本申请实施例提供的大数据作业调度方法的示意流程图;图2示出了本申请一个实施例构建的有向无环图的示意图;图3A-图3E示出了本申请另一实施例构建有向无环图的过程示意图;图4示出了本申请又一实施例以有向无环图为节点构建的有向无环图的示意图;图5示出了本申请实施例中大数据作业调度平台查询作业计算状态的原理示意图;图6示出了本申请一个实施例在有向无环图中记录作业计算状态的示意图;图7示出了本申请另一实施例在有向无环图中记录作业计算状态的示意图;图8示出了本申请又一实施例在有向无环图中记录作业计算状态的示意图;图9示出了本申请实施例提供的大数据作业调度平台的结构示意图;图10示出了本申请实施例提供的大数据作业调度平台的设置位置的示意图;图11示出了本申请实施例提供的大数据作业调度设备的结构示意图。具体实施方式为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。本申请实施例提出一种新的大数据作业调度方案,接收多个作业以及多个作业的调度信息;根据多个作业的调度信息,构建多个作业之间的调度依赖关系;基于调度依赖关系,依次提交多个作业。本申请实施例的方案,通过构建多个作业之间的调度依赖关系,从而可以依据构建的调度依赖关系,依次提交多个作业,实现多个作业的顺序控制,而且根据多个作业的调度信息构建多个作业之间的调度依赖关系,避免预先定义多个作业的顺序控制,能有效降低顺序控制的出错率。下面通过具体实施例对本申请实施例的方案进行详细说明,当然,本申请并不局限于以下实施例。实施例一本申请实施例一描述了一种大数据作业调度方法,如图1所示,大数据作业调度方法包括以下步骤:步骤101,接收多个作业以及多个作业的调度信息。本申请实施例中,作业可以是任何一种可执行的程序。举例来说,作业可以是在大数据系统中运行的程序,作业也可以是在Linux系统上执行的shell等。在一些实施例中,接收到的多个作业可以是用户直接提交的作业,也可以是系统中应用提交的作业,当然,也可以是部分为用户直接提交的作业,部分为系统中应用提交的作业。用户在提交多个作业时,可以同时提交多个作业,也可以在预设时间段内分多次提交多个作业。其中,预设时间段可以根据需求设定,例如,预设时间段为1天。在一个示例中,若有10个作业需要提交,则可以同时提交10个作业;也可以每次提交1个作业,在预设时间段内分10次提交10个作业;还可以每次提交2个作业,在预设时间段内分5次提交10个作业。当然,在预设时间段内分多次提交多个作业时,也可以每次提交数量不等的作业,本申请对此不做限定。在提交多个作业时,可以同时提交多个作业,也可以在预设时间段内分多次提交多个作业。相应地,在接收多个作业时,若提交作业时同时提交多个作业,则在接收时同时接收多个作业,若提交作业时在预设时间段内分多次提交多个作业,则在接收时在预设时间段内分多次接收多个作业。以用户提交作业为例,本申请实施例中,在用户提交作业时,还需要用户同时提交作业的调度信息,以根据作业的调度信息调度作业。其中,作业的调度信息,包括以下两种形式的调度信息,一种为定时调度的作业,其调度信息为调度启动时刻,在当前时刻(或系统时间)到达调度启动时刻时,调度该作业;另一种为依赖调度的作业,其调度信息为前置作业信息,此种作业的调度依赖于其前置作业的计算完成。在一个示例中,假设作业B的前置作业信息为作业A,则在作业A完成计算之后调度作业B;假设作业c的前置作业为作业a和作业b,则在作业a和作业b均完成计算之后调度作业c。当然,为了方便用户提交作业的调度信息,在用户提交作业时,可以向用户提供调度信息的选择项,以使用户在提供的选择项中选择作业的调度信息。具体来说,可以提供多个时刻供用户选择作业的调度启动时刻,还可以提供多个已接收的作业供用户选择作业的前置作业信息。在一些实施例中,在提交作业时,还可以提交作业的基本信息以及作业的执行信息。其中,作业的基本信息,可以包括但不限于:作业的类型以及作业的本文档来自技高网...

【技术保护点】
1.一种大数据作业调度方法,其特征在于,所述方法包括:接收多个作业以及所述多个作业的调度信息;根据所述多个作业的调度信息,构建所述多个作业之间的调度依赖关系;基于所述调度依赖关系,依次提交所述多个作业。

【技术特征摘要】
1.一种大数据作业调度方法,其特征在于,所述方法包括:接收多个作业以及所述多个作业的调度信息;根据所述多个作业的调度信息,构建所述多个作业之间的调度依赖关系;基于所述调度依赖关系,依次提交所述多个作业。2.根据权利要求1所述的方法,其特征在于,所述作业的调度信息包括调度启动时刻和/或前置作业信息;所述根据所述多个作业的调度信息,构建所述多个作业之间的调度依赖关系,包括:将调度信息为调度启动时刻的作业作为首节点;针对调度信息为前置作业信息的作业,将每一作业作为所述作业的前置作业所在节点的后向节点,构建所述调度依赖关系。3.根据权利要求1所述的方法,其特征在于,所述基于所述调度依赖关系,依次提交所述多个作业,包括:依据作业的调度信息确定调度所述作业的调度条件;基于所述调度依赖关系,确定满足一个作业的调度条件后,提交所述一个作业,再确定满足下一个作业的调度条件,直到所有作业均提交。4.根据权利要求3所述的方法,其特征在于,所述调度信息包括调度启动时刻;所述依据作业的调度信息确定调度所述作业的调度条件,包括:将当前时刻与所述调度启动时刻相同作为所述作业的调度条件。5.根据权利要求3所述的方法,其特征在于,所述调度信息包括前置作业信息;所述依据...

【专利技术属性】
技术研发人员:夏立
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1