电商平台作业调度方法及系统与流程

文档序号:16212420发布日期:2018-12-08 07:55阅读:489来源:国知局
电商平台作业调度方法及系统与流程

本发明涉及通信技术领域,尤其涉及一种电商平台作业调度方法及系统。

背景技术

随着电子商务行业的迅速发展,电商平台产生的数据种类以及数据量都在急剧增加,为了确保电商平台的稳定运行,往往需要设置不同的计算平台来支撑相应的业务数据计算量,并配置相应的技术人员人工处理数据的etl(extract-transform-load,抽取-转换-加载)。然而,由于作业种类繁多,作业量呈指数级增加,作业间的依赖关系错综复杂,因此,无法对作用运行的健康状态进行实时监控,也无法对作业运行状态进行实时调整。

而且,作业执行链条冗长,对于作业中出现的异常数据的定位,则需要采用人工的方式逐一对相关作业数据进行排查,这也就导致了异常数据定位的人力成本、时间成本极高,异常情况处理效率极低。

现有的作业间依赖关系的配置,是根据crontab指令进行周期性调度。作业间的依赖是根据经验值人工设定,通过设置缓冲时间来实现实际依赖。这种依赖配置关系,导致计算资源利用率较低,同时增加了整体作业的执行时间,导致日结数据的失效极低,无法满足管理报表、数据系统的使用要求。

同时,各类型作业的执行健康状态可控性较低,作业并发量的阈值设定全凭借经验,易出现因作业并发量大而导致相应数据计算平台停机的情况发生。此时,则需要人工终止相应作业,重新设置调度时间点和并发量,同时调整后续所有作业的调度时间,导致作业执行效率整体降低。

因此,如何提高作业执行效率,改善资源利用率,确保电商平台持续、稳定的运行,是目前亟待解决的技术问题。



技术实现要素:

本发明提供一种电商平台作业调度方法及系统,用以解决现有的作业执行效率低的问题,提高电商平台的资源利用率,确保电商平台持续、稳定的运行。

为了解决上述问题,本发明提供了一种电商平台作业调度方法,包括如下步骤:

提供一待执行作业;

获取执行所述待执行作业所需的资源空间评估值;

设置多个资源组,多个所述资源组与多个作业类型一一对应,每一所述资源组用于执行相应作业类型的作业;

选择与所述待执行作业匹配的资源组作为目标资源组;

判断所述目标资源组的剩余资源空间是否大于所述资源空间评估值,若是,则将所述待执行作业分配至所述目标资源组,并进行资源调度,以开始执行所述待执行作业。

优选的,还包括如下步骤:

判断所述目标资源组的剩余资源空间是否大于所述资源空间评估值,若否,则将所述待执行作业按照预先设定的优先级顺序加入到所述目标资源组的作业等待队列中。

优选的,选择与所述待执行作业匹配的资源组作为目标资源组之前还包括如下步骤:

判断所述待执行作业是否满足触发条件,若是,则选择与所述待执行作业匹配的资源组作为目标资源组。

优选的,所述触发条件为待执行作业的全部上游作业执行成功、预设数量的上游作业执行成功、全部上游作业执行失败中的一种;所述上游作业为与所述待执行作业具有先后依赖关系的作业。

优选的,还包括如下步骤:

判断所述待执行作业是否执行失败,若是,则统计所述待执行作业执行失败次数;

判断所述待执行作业的剩余重试次数是否为0,若否,则再次执行所述待执行作业。

为了解决上述问题,本发明还提供了一种电商平台作业调度系统,包括:

获取模块,用于获取执行待执行作业所需的资源空间评估值;

设置模块,用于设置多个资源组,多个所述资源组与多个作业类型一一对应,每一所述资源组用于执行相应作业类型的作业;

选择模块,连接所述获取模块和所述设置模块,用于选择与所述待执行作业匹配的资源组作为目标资源组;

控制模块,连接所述选择模块,用于判断所述目标资源组的剩余资源空间是否大于所述资源空间评估值,若是,则将所述待执行作业分配至所述目标资源组,并进行资源调度,以开始执行所述待执行作业。

优选的,所述控制模块还用于判断所述目标资源组的剩余资源空间是否大于所述资源空间评估值,若否,则将所述待执行作业按照预先设定的优先级顺序加入到所述目标资源组的作业等待队列中。

优选的,所述选择模块包括判断单元和选择单元;所述判断单元,连接所述选择单元,用于判断所述待执行作业是否满足触发条件;所述选择单元,用于在所述判断单元的判断结果为所述待执行作业满足触发条件时,选择与所述待执行作业匹配的资源组作为目标资源组。

优选的,所述触发条件为待执行作业的全部上游作业执行成功、预设数量的上游作业执行成功、全部上游作业执行失败中的一种;所述上游作业为与所述待执行作业具有先后依赖关系的作业。

优选的,还包括重试模块;所述控制模块还用于判断所述待执行作业是否执行失败,若是,则统计所述待执行作业执行失败次数;所述重试模块,连接所述控制模块,用于判断所述待执行作业的剩余重试次数是否为0,若否,则向所述控制模块发出再次执行所述待执行作业的指令。

本发明提供的电商平台作业调度方法及系统,通过设置多个资源组,根据待执行作业的类型选择相应的资源组来进行执行,提高了作业执行的效率;且在目标资源组开始执行待作业之前,对目标资源组的剩余资源空间与执行待执行作业所需的资源空间评估值进行比较,在提高电商平台资源利用率的同时,也避免了作业执行错误,确保了电商平台持续、稳定的运行。

附图说明

附图1是本发明具体实施方式中电商平台作业调度方法的流程图;

附图2是本发明具体实施方式中电商平台作业调度系统的结构示意图。

具体实施方式

下面结合附图对本发明提供的电商平台作业调度方法及系统的具体实施方式做详细说明。

本具体实施方式提供了一种电商平台作业调度方法,附图1是本发明具体实施方式中电商平台作业调度方法的流程图。如图1所示,本具体实施方式提供的电商平台作业调度方法,包括如下步骤:

步骤s11,提供一待执行作业。

步骤s12,获取执行所述待执行作业所需的资源空间评估值。其中,获取执行所述待执行作业所需的所述资源空间评估值的具体方法,可以是将一预设时间段内的多个同属性作业执行的历史数据进行存储、统计分析,根据所述历史数据计算得到多个同属性作业执行所需的资源空间的平均值、以及所需资源空间的上限值和下限值,并根据所述平均值、所述上限值和所述下限值设置所述待执行作业所需的资源空间评估值。其中,所述历史数据包括所述同属性作业的日志,所述日志中记载有所述同属性作业执行过程中传输的数据量。为了提高获取的资源空间评估值的准确度,多个所述同属性作业与所述待执行作业的类型、作业触发条件等属性相同。所述预设时间段的具体数值,本领域技术人员可以根据实际需要进行设置,例如30天,本具体实施方式对此不作限定。

步骤s13,设置多个资源组,多个所述资源组与多个作业类型一一对应,每一所述资源组用于执行相应作业类型的作业。通过设置多个资源组,实现不同类型作业的相互隔离,从而有效控制作业并发量,保障各种类型作业执行的稳定进行。多个作业类型包括vertica、mr、hive、spark、mapreduce、other中的多个。本具体实施方式中,由于通过资源组进行作业的分类,因而可以将多个资源组设置于同一服务器内。相较于现有技术中设置多个服务器的方式,本具体实施方式仅采用一个服务器,大大降低了电商的运营成本。所述服务器可以是本地服务器,也可以是网络服务器。

步骤s14,选择与所述待执行作业匹配的资源组作为目标资源组。

步骤s15,判断所述目标资源组的剩余资源空间是否大于所述资源空间评估值,若是,则将所述待执行作业分配至所述目标资源组,并进行资源调度,以开始执行所述待执行作业。本具体实施方式中,在执行所述待执行作业之前,对所述目标资源组的剩余资源空间预先进行评估,当剩余资源空间大于所述待执行作业的所述资源空间评估值时,才会执行所述待执行作业,从而有效控制了所述目标资源组的作业并发量,确保了所述目标资源组内作业执行的稳定性,改善了现有技术中电商平台作业执行效率低的问题,提高了电商平台的资源利用率。

优选的,所述电商平台作业调度方法还包括如下步骤:

判断所述目标资源组的剩余资源空间是否大于所述资源空间评估值,若否,则将所述待执行作业按照预先设定的优先级顺序加入到所述目标资源组的作业等待队列中。

具体来说,按照预先设定的优先级顺序先后执行所述等待队列中的作业,并周期性的检测所述目标资源组的剩余资源空间,从而使得同类型的多个作业能够按照先后顺序有序执行,以进一步提高电商平台运行的稳定性。

优选的,选择与所述待执行作业匹配的资源组作为目标资源组之前还包括如下步骤:

判断所述待执行作业是否满足触发条件,若是,则选择与所述待执行作业匹配的资源组作为目标资源组。

更优选的,所述触发条件为待执行作业的全部上游作业执行成功、预设数量的上游作业执行成功、全部上游作业执行失败中的一种;所述上游作业为与所述待执行作业具有先后依赖关系的作业。

具体来说,可以根据作业需求设置一个或者多个具有相应调度频次的根作业,然后在所述根作业的基础上,由下至上可视化的配置后续具有相互依赖关系的作业,构成一颗作业树,并指定所述作业树中每一作业对应的资源组。在选择与所述待执行作业匹配的资源组作为目标资源组之前,先根据所述待执行作业的上游作业执行情况判断所述待执行作业是否满足触发条件,为确保所述待执行作业的稳定执行奠定基础。其中,所述上游作业的执行情况,可以根据状态广播器的状态值进行判断。所述上游作业的执行情况包括执行成功和执行失败。

优选的,本具体实施方式提供的电商平台作业调度方法还包括如下步骤:

(a)判断所述待执行作业是否执行失败,若是,则统计所述待执行作业执行失败次数;

(b)判断所述待执行作业的剩余重试次数是否为0,若否,则再次执行所述待执行作业。

具体来说,若所述待执行作业执行成功,则通过状态广播器广播,以为与所述待执行作业具有先后依赖关系的下一待执行作业的执行触发条件提供判断基础。用户可以根据需求预先设定待执行作业的重试执行次数阈值,在一次执行失败后,判断剩余重试执行次数是否为0,若否,则再次执行所述待执行作业。这是因为,通过对大量作业执行失败的分析得到,很大概率的作业执行失败是由于网络链路不稳定造成的,本具体实施方式通过设定重试机制,可以在一定程度上自动、有效的修复作业执行失败问题。本领域技术人员还可以根据需要设置重试时间间隔,以进一步提高电商平台运行的稳定性。

本具体实施方式中的每一资源组可以为一对应的数据计算平台。本具体实施方式提供的电商作业调度方法可以兼容市场上主流的数据计算平台,例如关系型数据库、mpp数据库、hadoop数据库、nosql数据库等等。本具体实施方式针对不同的计算平台,还可以开发并接入其资源调度接口,便于获取对应计算平台的资源状况信息,且通过抽象出对应的接口,便于实现插拔式快速对接新增的计算平台,具有水平扩展的特性,因而使得其适用性更强,充分满足多样化的市场、企业和用户需求。

不仅如此,本具体实施方式还提供了一种电商平台作业调度系统,附图2是本发明具体实施方式中电商平台作业调度系统的结构示意图。如图2所示,本具体实施方式提供的电商平台作业调度系统,包括:获取模块21、设置模块22、选择模块23和控制模块24。

所述获取模块21,用于获取执行待执行作业所需的资源空间评估值;所述设置模块22,用于设置多个资源组,多个所述资源组与多个作业类型一一对应,每一所述资源组用于执行相应作业类型的作业;所述选择模块23,连接所述获取模块21和所述设置模块22,用于选择与所述待执行作业匹配的资源组作为目标资源组;所述控制模块24,连接所述选择模块23,用于判断所述目标资源组的剩余资源空间是否大于所述资源空间评估值,若是,则将所述待执行作业分配至所述目标资源组,并进行资源调度,以开始执行所述待执行作业。

优选的,所述控制模块24还用于判断所述目标资源组的剩余资源空间是否大于所述资源空间评估值,若否,则将所述待执行作业按照预先设定的优先级顺序加入到所述目标资源组的作业等待队列中。

优选的,所述选择模块23包括判断单元231和选择单元232;所述判断单元231,连接所述选择单元232,用于判断所述待执行作业是否满足触发条件;所述选择单元232,用于在所述判断单元的判断结果为所述待执行作业满足触发条件时,选择与所述待执行作业匹配的资源组作为目标资源组。

优选的,所述触发条件为待执行作业的全部上游作业执行成功、预设数量的上游作业执行成功、全部上游作业执行失败中的一种;所述上游作业为与所述待执行作业具有先后依赖关系的作业。

优选的,还包括重试模块25;所述控制模块24还用于判断所述待执行作业是否执行失败,若是,则统计所述待执行作业执行失败次数;所述重试模块25,连接所述控制模块24,用于判断所述待执行作业的剩余重试次数是否为0,若否,则向所述控制模块发出再次执行所述待执行作业的指令。

本具体实施方式提供的电商平台作业调度方法及系统,通过设置多个资源组,根据待执行作业的类型选择相应的资源组来进行执行,提高了作业执行的效率;且在目标资源组开始执行待作业之前,对目标资源组的剩余资源空间与执行待执行作业所需的资源空间评估值进行比较,在提高电商平台资源利用率的同时,也避免了作业执行错误,确保了电商平台持续、稳定的运行。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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