本申请提供了一种任务调度方法,该方法包括以下步骤:获取子作业的父作业的执行结果,该父作业的执行顺序早于子作业,其执行结果包括执行成功和执行失败;然后在执行结果为执行失败的情况下,确定子作业与该父作业之间的依赖关系,依赖关系包括强依赖关系和软依赖关系,强依赖关系是子作业的执行依赖于父作业的执行结果,软依赖关系是子作业的执行与父作业的执行结果无关;最后在子作业与其父作业之间的依赖关系是软依赖关系的情况下,执行子作业。该方法能够让作业关系配置更加多样化,任务调度更为灵活,更能满足实际业务场景中的任务调度关系需求。
【技术实现步骤摘要】
一种任务调度方法、装置及相关设备
本专利技术涉及计算机
,尤其涉及一种任务调度方法、装置及相关设备。
技术介绍
Azkaban是由领英(Linkedin)公司开源的一款工作流任务调度工具,集成调度、编排、失败重试、邮件告警等功能为一体。目前,Azkaban通过依赖(dependencies)参数定义作业之间的依赖关系,具有此种依赖关系的父作业和子作业,在父作业执行成功的情况下,子作业才能够被执行;在父作业执行失败的情况下,子作业无法被执行。但是,dependencies参数定义的依赖关系过于单一,导致现有的基于Azkaban的任务调度已经无法完全覆盖实际业务场景中任务调度之间的关系,无法满足业务需求,用户体验差。
技术实现思路
本申请实施例提供了一种任务调度方法,实现了作业关系配置的多样化,让任务调度更为灵活,更能满足实际业务场景中任务调度之间的关系需求。第一方面,本申请提供了一种任务调度方法,该方法包括以下步骤:获取子作业的父作业的执行结果,其中,该父作业的执行顺序早于子作业,其执行结果包括执行成功和执行失败;在执行结果为执行失败的情况下,确定子作业与该父作业之间的依赖关系,其中,依赖关系包括强依赖关系和软依赖关系,强依赖关系是子作业的执行依赖于父作业的执行结果,软依赖关系是子作业的执行与父作业的执行结果无关;在子作业与其父作业之间的依赖关系是软依赖关系的情况下,执行子作业。第二方面,本申请提供了一种任务调度装置,该装置包括:获取模块,用于获取子作业的父作业的执行结果,其中,父作业的执行顺序早于子作业,其执行结果包括执行成功和执行失败;确定模块,用于在执行结果为执行失败的情况下,确定子作业与其父作业之间的依赖关系,其中,依赖关系包括强依赖关系和软依赖关系,强依赖关系是子作业的执行依赖于父作业的执行结果,软依赖关系是子作业的执行与父作业的执行结果无关;执行模块,用于在子作业与其父作业之间的依赖关系是软依赖关系的情况下,执行子作业。第三方面,本申请提供了一种计算设备,包括处理器和存储器,所述处理器和存储器可通过总线相互连接,也可以集成在一起。该处理器执行存储器中存储的代码实现如第一方面所描述的方法。第四方面,本申请提供了一种计算机可读存储介质,包括程序或指令,当上述程序或指令在计算机设备上运行时,可使上述计算机设备执行如第一方面所描述的方法。可以看到,本申请实施例通过使用两种不同的依赖关系,实现了作业关系配置的多样性,使得用户能够根据实际业务场景需求配置作业之间为软依赖关系或者强依赖关系,再通过获取父作业的执行结果以及子作业和父作业之间的依赖关系,来控制子作业的执行,任务调度更为灵活,能够更好地满足实际业务场景当中的任务调度关系需求,提升用户体验。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的一种Azkaban任务调度系统架构示意图;图2是本申请实施例提供的一种作业间的依赖关系示意图;图3是本申请实施例提供的一种软依赖关系示意图;图4是本申请实施例提供的一种强依赖关系示意图;图5是本申请实施例提供的一种任务调度方法的流程示意图;图6是本申请实施例提供的一种任务调度装置的示意图;图7是本申请实施例提供的一种计算设备的示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在本专利技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。为了便于理解本申请的实施例,下面对本申请涉及的部分术语进行解释说明。大数据:无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。大数据技术的战略意义在于对海量数据进行专业化处理,处理后的数据可以应用于各个行业,包括金融、汽车、餐饮、电信、能源等等。举例来说,利用大数据技术和物联网技术的无人驾驶汽车、利用大数据技术分析客户行为进行商品推荐、利用大数据技术实现信贷风险分析等等。Hadoop:Hadoop是由java语言编写的、在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架。Hadoop由于具有高可靠性、高拓展性、高效性、高容错性等优点,在大数据处理中得以广泛应用,其核心部件是分布式文件系统(hadoopdistributionfilesystem,HDFS)与MapReduce:HDFS为海量的数据提供了存储,引入存放文件元数据信息的服务器和实际存放数据的服务器,对数据进行分布式储存和读取;MapReduce是一个计算框架,为海量数据提供了计算,MapReduce的核心思想就是把计算任务分配给集群内的服务器执行,通过对计算任务的拆分(Map计算/Reduce计算),再根据任务调度器对任务进行分布式计算。任务调度:在计算机科学中,调度就是一种将任务分配给资源去执行的方法。任务可以是项目中的至少一个作业或者一个工作流,可以包括shell脚本(shellscript)、java程序、MapReduce程序、hive脚本(hivescript)等。各任务单元之间会存在时间先后以及前后依赖关系,并且存在着周期性重复,而给所有的任务运行定一个运行规则,再按照规则去安排任务的执行就可以理解为任务调度。常见的任务调度系统包括Azkaban、Ooize、Cascading等,调度系统最基本的功能是任务的定义和任务编排:任务定义主要是确定数据计算和加工的逻辑和规则,包括任务执行的频次、具体执行时间、对应的执行脚本和参数等内容;任务编排主要是确定不同任务的先后关系,确保任务有序且高效地进行。任务编排的输出结果是一个有向无环图(DirectedAcyclicGraph,DAG),方便用户查看任务的依赖关系及执行情况,对程序的运行过程进行可视化跟踪。调度系统一般还有任务重跑、历史补数、日志查看、邮件告警以及运行监控等功能,这里不再具体介绍。H2:H2是一个java编写的关系型数据库,它可以被嵌入java应用程序中使用,或者作为一个单独的数据库服务器运行。下面对本申请涉及的应用场景进行说明。随着信息技术的发展,数据挖掘、机器学习、人工智能、统计分析等技术在数据分析领域获得广泛应用。与此同时本文档来自技高网...
【技术保护点】
1.一种任务调度方法,其特征在于,所述方法包括:/n获取子作业的父作业的执行结果,其中,所述父作业的执行顺序早于所述子作业,所述执行结果包括执行成功和执行失败;/n在所述执行结果为执行失败的情况下,确定所述子作业与所述父作业之间的依赖关系,其中,所述依赖关系包括强依赖关系和软依赖关系,所述强依赖关系是所述子作业的执行依赖于所述父作业的执行结果,所述软依赖关系是所述子作业的执行与所述父作业的执行结果无关;/n在所述子作业与所述父作业之间的依赖关系是软依赖关系的情况下,执行所述子作业。/n
【技术特征摘要】
1.一种任务调度方法,其特征在于,所述方法包括:
获取子作业的父作业的执行结果,其中,所述父作业的执行顺序早于所述子作业,所述执行结果包括执行成功和执行失败;
在所述执行结果为执行失败的情况下,确定所述子作业与所述父作业之间的依赖关系,其中,所述依赖关系包括强依赖关系和软依赖关系,所述强依赖关系是所述子作业的执行依赖于所述父作业的执行结果,所述软依赖关系是所述子作业的执行与所述父作业的执行结果无关;
在所述子作业与所述父作业之间的依赖关系是软依赖关系的情况下,执行所述子作业。
2.根据权利要求1所述的任务调度方法,其特征在于,所述方法还包括:
在所述子作业与所述父作业之间的依赖关系是强依赖关系的情况下,不执行所述子作业,退出工作流。
3.根据权利要求1或2所述的任务调度方法,其特征在于,在所述获取子作业的父作业的执行结果之前,所述方法还包括:
读取配置文件,其中,所述配置文件包括全部作业之间的依赖关系,所述配置文件是用户根据业务需求编写所述全部作业之间的依赖关系后生成的。
4.根据权利要求3所述的任务调度方法,其特征在于,所述配置文件中,作业之间的所述强依赖关系用第一依赖参数标识,所述软依赖关系用第二依赖参数标识;
所述确定所述子作业与所述父作业之间的依赖关系包括:
在所述子作业和所述父作业之间的依赖参数标识为所述第一依赖参数标识的情况下,确定所述子作业与所述父作业之间的依赖关系是所述强依赖关系;
在所述子作业和所述父作业之间的依赖参数标识为所述第二依赖参数标识的情况下,确定所述子作业与所述父作业之间的依赖关系是所述软依赖关系。
5.根据权利要求3所述的任务调度方法,其特征在于,在读取配置文件之后,所述方法还包括:
获取所述配置文件中所述全部作业之间的依赖关系,按照所述全部作业之间...
【专利技术属性】
技术研发人员:郭浩,
申请(专利权)人:平安普惠企业管理有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。