一种任务调度的方法、设备和系统的制作方法

文档序号:6341369阅读:188来源:国知局
专利名称:一种任务调度的方法、设备和系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种任务调度的方法、设备和系统。
背景技术
在当前的数据管理系统中,要支撑多种类型的作业,包括数据加载作业,用于保证来自业务系统的数据及时加载到数据管理系统;SQL (Structured Query Language,结构化查询语言)查询作业,用于处理用户提交的SQL操作;后台维护作业,用于周期性或手动触发对数据的后台维护,例如,对过期数据的定期清除、数据文件的合并和分裂、数据一致性维护、数据负载均衡、其他作业等。在当前数据管理系统的作业调度方案中,数据管理系统无法统一管理上述作业,而是孤立地实施管理。在实现本发明的过程中,发明人发现现有技术中至少存在以下问题现有方案对各种类型的作业是独立执行的,并不统一进行管理。当需要处理的数据量较大时,会造成业务的堵塞。例如,对于数据加载作业,需要对TB级别的数据进行转换加载时,会消耗系统的所有资源,此时SQL查询作业和后台维护作业均由于无法获取足够的资源而不能执行。类似的情况,SQL查询作业和后台维护作业也可能占用系统所有资源, 造成其他作业的堵塞。如果数据加载作业被堵塞,则会造成大量数据无法及时的加载;如果SQL查询作业被堵塞,则会造成较大的查询响应时间,较坏的用户感受;如果后台维护作业被堵塞,则造成数据的不一致或错误。

发明内容
本发明实施例提供一种任务调度的方法、设备和系统,以合理调度各种类型的作业。为了达到上述目的,本发明实施例提供一种任务调度的方法,包括确定各作业节点的资源信息以及存储任务的各队列对应资源的优先级信息;根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点。本发明实施例提供一种任务调度的设备,包括第一确定模块,用于确定各作业节点的资源信息;第二确定模块,用于确定存储任务的各队列对应资源的优先级信息;分配模块,用于根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点。本发明实施例提供一种任务调度的系统,包括资源调度器,用于确定各作业节点的资源信息以及存储任务的各队列对应资源的优先级信息;并根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点;
作业节点,用于当接收到所述资源调度器调度的任务时,对所述任务进行相应处理。与现有技术相比,本发明至少具有以下优点通过统筹考虑各种类型的作业,根据各作业节点的资源信息将队列中的任务分配到合适的作业节点,以合理调度各种类型的作业。通过统一管理各种类型的作业,不会出现某种类型的作业消耗系统的所有资源导致其他作业堵塞的情况。


为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一提供的一种任务调度的方法流程示意图;图2是本发明实施例二提供的一种任务调度的设备结构示意图;图3是本发明实施例四提供的系统逻辑架构示意图;图4是本发明实施例四提供的部署架构示意图;图5是本发明实施例四提供的一种任务调度的方法流程示意图。
具体实施例方式下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一本发明实施例一提供一种任务调度的方法,如图1所示,该方法包括以下步骤步骤101,当有作业需要调度时,根据作业调度特征信息确定作业类型。其中,对于每个需要调度的作业来说,均具有自身对应的作业调度特征信息,该作业调度特征信息包括但不限于在作业运行1过程中对各种资源(如计算资源、存储资源、 网络资源等)的占用情况;作业运行时长;作业运行时间(如上午、下午、傍晚、晚间、凌晨等)。本发明实施例中,可将具有相同或相近作业调度特征信息的作业归为一类作业,而具有相同或相近作业调度特征信息的作业为同一作业类型。例如,将对计算资源占用情况较多的作业归为作业类型1。实际应用中,作业类型可包括但不限于为数据加载、数据查询和后台管理等。本发明实施例中,外部请求以作业的形式提交至作业管理系统,资源调度器(或者作业管理系统中的其他设备或功能模块)将根据该作业的调度特征信息确定作业类型。步骤102,根据作业类型将该作业作为任务存储到对应的队列中。其中,根据实际需要可设置多个队列,每个队列存储一种作业类型的作业,不同的队列用于存储不同作业类型的作业。例如,可根据实际情况设置3个队列,将具有作业类型A(如数据加载)的作业存储到队列1、将具有作业类型B(如数据查询)的作业存储到队列2、将具有作业类型 C(如后台管理)的作业存储到队列1中。
本发明实施例中,对于每个作业来说,与每个任务相对应;在作业运行前可称之为作业;在作业运行过程中可称之为任务;即作业与任务是相同的概念。具体的,外部请求以作业的形式提交至作业管理系统后,当该作业是已知类型的作业时,可在提交作业时即设定其作业调度特征信息,确定该作业的作业类型,并将该作业作为任务存储到对应的队列中(由于是已知类型,则之前已经存在了作业类型所对应的队列)。当该作业是未知类型的作业时,在作业管理系统运行过程中,可动态生成新的作业类型,管理员可根据经验为动态生成的作业类型设置队列,并将该作业作为任务存储到该设置的队列中,该未知类型转变为已知类型。步骤103,确定各作业节点的资源信息以及各队列对应资源的优先级信息。其中, 各作业节点的资源信息包括各作业节点的不同资源类型的资源的信息;各队列对应资源的优先级信息包括各队列对应不同资源类型的资源的优先级信息;不同资源类型的资源包括计算资源、存储资源和网络资源。本发明实施例中,用于处理任务的节点为作业节点,作业管理系统由多个作业节点构成,每个作业节点具有一定的资源。该资源包括但不限于计算资源、存储资源和网络资源。本步骤中各作业节点的资源信息为各作业节点的资源使用情况。本发明实施例中,确定各队列对应资源的优先级信息的过程,具体为将资源划分为计算资源、存储资源和网络资源,并设置每个队列对应计算资源的优先级信息、对应存储资源的优先级信息、对应网络资源的优先级信息。其中,每个队列拥有一定的资源(包括但不限于计算资源、存储资源和网络资源等),每个队列针对每种资源配置有对应的优先级。例如,在日志管理系统中,存在数据加载、数据查询和后台管理三种作业类型的队列,数据加载队列对存储资源和网络资源具有较高要求;数据查询队列对计算资源,存储资源具有较高要求;后台管理队列对各种资源均无特别要求。基于上述情况,可设置数据加载队列的计算资源的优先级信息为低级别,存储资源的优先级信息为高级别,网络资源的优先级信息为高级别;设置数据查询队列的计算资源的优先级信息为高级别,存储资源的优先级信息为低级别,网络资源的优先级信息为低级别;设置后台管理作业的计算资源的优先级信息为低级别,存储资源的优先级信息为低级别,网络资源的优先级信息为低级别。进一步的,可考虑为不同的优先级分配不同的优先概率(即队列中作业的任务以多大的概率获取资源),对于上述日志系统可采用如下优先概率队列1 (数据加载队列) 计算资源优先级概率为30%、存储资源优先级概率为50%、网络资源优先级概率为40% ; 队列2(数据查询队列)计算资源优先级概率为50%、存储资源优先级概率为20%、网络资源优先级概率为40% ;队列3(后台管理队列)计算资源优先级概率为20%、存储资源优先级概率30%、网络资源优先级概率为20%。当然,实际应用中,上述优先级概率还可以根据实际情况进行调整,只要保证所有队列计算资源优先级概率之和为100%、存储资源优先级概率之和为100%、网络资源优先级概率之和为100%即可,本发明实施例中不再详加赘述。步骤104,根据各作业节点的资源信息和各队列对应资源的优先级信息将队列中的任务分配到对应的作业节点。例如,作业节点1的资源信息为计算资源使用40%,网络资源和存储资源均使用95%,队列1对应资源的优先级信息为计算资源优先级概率为80%, 网络资源优先级概率和存储资源优先级概率为30%,则可以将队列1中的任务分配到作业节点1进行处理。实际应用中,作业可以恰当的方式被分解为若干个子任务,每个子任务依赖于一定的计算资源、存储资源或网络资源完成其操作;因此,本步骤中,可将队列中的任务划分为子任务,并根据各作业节点的资源信息和各队列对应资源的优先级信息将队列中的子任务分配到对应的作业节点中运行。具体的,可根据每个队列对应每种资源的优先级信息以及各作业节点的每种资源的空闲情况,将队列中的子任务分配到对应的作业节点。其中,每种资源为计算资源、存储资源或网络资源;当队列对应计算资源具有最高优先级时,将所述队列中的子任务分配到计算资源剩余情况最优的作业节点;当队列对应存储资源具有最高优先级时,将所述队列中的子任务分配到存储资源剩余情况最优的作业节点;当队列对应网络资源具有最高优先级时,将所述队列中的子任务分配到网络资源剩余情况最优的作业节点。本发明实施例中,对于各作业节点来说,还需要对各种资源进行配额管理,实际应用中可在各作业节点设置有资源配额管理模块进行配额管理(例如,MapReduce系统中的 map slot和reduce slot就是为了管理计算资源配额而设置的)。当任务分配到对应的作业节点后,作业节点可将计算、存储或网络资源分配给来自不同作业队列的作业的子任务。需要说明的是,考虑到某些数据管理系统运行的作业类型较为固定,其运行特点也有明确的区分,本发明实施例中,还可根据作业调度特征信息为对应的业务预留作业节点的资源。例如,针对WAP网关日志系统,每天早晨8点左右会有针对前一天报表数据的汇聚查询、每天数据加载最高峰时段为上午9点-10点、每月最后一天会有大量针对当月汇聚信息的查询操作、后台作业在凌晨1点左右启动。通过分析上述情况,可在适当的时机提出资源预留,以保证特定作业类型的作业触发时资源已经可用。上述WAP网关日志系统中,数据加载作业类型集中在上午9点-10点,则可在上午9点-10点预留相关资源,而由于数据加载对存储资源和网络资源的需求较高,则可以在作业节点上预留存储资源和网络资源; 当上午9点需要对数据加载作业进行调度时,由于作业节点上已经预留了存储资源和网络资源,则可以保证数据加载作业被正常调度。本发明实施例中,针对资源释放的情况,如果释放一种资源,则该种资源为此次调度的关键资源;如果同时释放多种资源,则选取资源比重较大的资源为此次调度的关键资源,如果多种资源比重相当,则随机选取一种资源为关键资源。进一步的,选择以此次调度关键资源为最高优先级需求的队列作为此次调度的优先调度队列,如果多个队列均满足条件,则随机选取一个队列,同时确定第二优先调度队列,第三优先调度队列,以此类推;之后,在选中队列队首选取一个子任务作为调度目标,派发该子任务到上述释放资源的作业节点执行。当然,实际应用中到释放资源的作业节点执行的子任务可以根据实际情况任意选择,并不局限于上述关键资源的方式,例如,可以采用轮询的方式依次从各队列中选择子任务执行等,本发明实施例中不再赘述。综上所述,本发明实施例中,通过统筹考虑各种类型的作业,根据各作业节点的资源剩余情况将队列中的任务分配到合适的作业节点,以合理调度各种类型的作业。通过统一管理各种类型的作业,不会出现某种类型的作业消耗系统的所有资源导致其他作业堵塞的情况。实施例二
基于与上述方法同样的发明构思,本发明实施例二提供一种任务调度的设备(如资源调度器),如图2所示,该设备包括第一确定模块11,用于确定各作业节点的资源信息;其中,各作业节点的资源信息包括各作业节点的不同资源类型的资源的信息。第二确定模块12,用于确定存储任务的各队列对应资源的优先级信息;其中,各队列对应资源的优先级信息包括各队列对应不同资源类型的资源的优先级信息。本发明实施例中,不同资源类型的资源包括计算资源、存储资源和网络资源;所述第二确定模块12,具体用于设置每个队列对应计算资源的优先级信息、对应存储资源的优先级信息、对应网络资源的优先级信息。其中,每个队列拥有一定的资源(包括但不限于计算资源、存储资源和网络资源等),每个队列针对每种资源配置有对应的优先级。例如,在日志管理系统中,存在数据加载、数据查询和后台管理三种作业类型的队列,数据加载队列对存储资源和网络资源具有较高要求;数据查询队列对计算资源,存储资源具有较高要求; 后台管理队列对各种资源均无特别要求。基于上述情况,可设置数据加载队列的计算资源的优先级信息为低级别,存储资源的优先级信息为高级别,网络资源的优先级信息为高级别;设置数据查询队列的计算资源的优先级信息为高级别,存储资源的优先级信息为低级别,网络资源的优先级信息为低级别;设置后台管理作业的计算资源的优先级信息为低级别,存储资源的优先级信息为低级别,网络资源的优先级信息为低级别。进一步的,可考虑为不同的优先级分配不同的优先概率(即队列中作业的任务以多大的概率获取资源),对于上述日志系统可采用如下优先概率队列1 (数据加载队列) 计算资源优先级概率为30%、存储资源优先级概率为50%、网络资源优先级概率为40% ; 队列2(数据查询队列)计算资源优先级概率为50%、存储资源优先级概率为20%、网络资源优先级概率为40% ;队列3(后台管理队列)计算资源优先级概率为20%、存储资源优先级概率30%、网络资源优先级概率为20%。当然,实际应用中,上述优先级概率还可以根据实际情况进行调整,只要保证所有队列计算资源优先级概率之和为100%、存储资源优先级概率之和为100%、网络资源优先级概率之和为100%即可,本发明实施例中不再详加赘述。分配模块13,用于根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点。例如,作业节点1的资源信息为计算资源使用 40%,网络资源和存储资源均使用95%,队列1对应资源的优先级信息为计算资源优先级概率为80%,网络资源优先级概率和存储资源优先级概率为30%,则可以将队列1中的任务分配到作业节点1进行处理。本发明实施例中,所述分配模块13,具体用于将所述队列中的任务划分为子任务, 并根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的子任务分配到对应的作业节点。所述分配模块13,进一步用于根据每个队列对应每种资源的优先级信息以及各作业节点的每种资源的空闲情况,将所述队列中的子任务分配到对应的作业节
点ο其中,每种资源为计算资源、存储资源或网络资源;所述分配模块13,进一步用于当队列对应计算资源具有最高优先级时,将所述队列中的子任务分配到计算资源剩余情况最优的作业节点;当队列对应存储资源具有最高优先级时,将所述队列中的子任务分配到存储资源剩余情况最优的作业节点;当队列对应网络资源具有最高优先级时,将所述队列中的子任务分配到网络资源剩余情况最优的作业节点。本发明实施例中,各队列对应资源的优先级信息包括各队列对应不同资源类型的资源的优先级概率;其中,所有资源类型的资源的优先级概率之和为100%。本发明实施例中,该设备还包括第三确定模块14,用于当有作业需要调度时,根据作业调度特征信息确定作业类型。其中,对于每个需要调度的作业来说,均具有自身对应的作业调度特征信息,该作业调度特征信息包括但不限于在作业运行1过程中对各种资源(如计算资源、存储资源、网络资源等)的占用情况;作业运行时长;作业运行时间(如上午、下午等)。本发明实施例中,可将具有相同或相近作业调度特征信息的作业归为一类作业,而具有相同或相近作业调度特征信息的作业为同一作业类型。例如,将对计算资源占用情况较多的作业归为作业类型1。实际应用中,作业类型可包括但不限于为数据加载、数据查询和后台管理等。本发明实施例中,外部请求以作业的形式提交至作业管理系统,第三确定模块14将根据该作业的调度特征信息确定作业类型。存储模块15,用于根据该作业类型将该作业作为任务存储到对应的队列中;其中,不同的队列用于存储不同作业类型的作业。具体的,根据实际需要可设置多个队列,每个队列存储一种作业类型的作业,不同的队列用于存储不同作业类型的作业。例如,可根据实际情况设置3个队列,将具有作业类型A (如数据加载)的作业存储到队列1、将具有作业类型B (如数据查询)的作业存储到队列2、将具有作业类型C(如后台管理)的作业存储到队列1中。本发明实施例中,对于每个作业来说,与每个任务相对应;在作业运行前可称之为作业;在作业运行过程中可称之为任务;即作业与任务是相同的概念。进一步的,外部请求以作业的形式提交至作业管理系统后,当该作业是已知类型的作业时,可在提交作业时即设定其作业调度特征信息,确定该作业的作业类型,并将该作业作为任务存储到对应的队列中(由于是已知类型,则之前已经存在了作业类型所对应的队列)。当该作业是未知类型的作业时,在作业管理系统运行过程中,可动态生成新的作业类型,管理员可根据经验为动态生成的作业类型设置队列,并将该作业作为任务存储到该设置的队列中,该未知类型转变为已知类型。本发明实施例中,该设备还包括预留模块16,用于根据作业调度特征信息为对应的业务预留作业节点的资源。本发明实施例中,对于各作业节点来说,还需要对各种资源进行配额管理,实际应用中可在各作业节点设置有资源配额管理模块进行配额管理(例如,MapReduce系统中的 map slot和reduce slot就是为了管理计算资源配额而设置的)。当任务分配到对应的作业节点后,作业节点可将计算、存储或网络资源分配给来自不同作业队列的作业的子任务。需要说明的是,考虑到某些数据管理系统运行的作业类型较为固定,其运行特点也有明确的区分,本发明实施例中,还可根据作业调度特征信息为对应的业务预留作业节点的资源。例如,针对WAP网关日志系统,每天早晨8点左右会有针对前一天报表数据的汇聚查询、每天数据加载最高峰时段为上午9点-10点、每月最后一天会有大量针对当月汇聚信息的查询操作、后台作业在凌晨1点左右启动。通过分析上述情况,可在适当的时机提出资源预留,以保证特定作业类型的作业触发时资源已经可用。上述WAP网关日志系统中,数据加载作业类型集中在上午9点-10点,则可在上午9点-10点预留相关资源,而由于数据加载对存储资源和网络资源的需求较高,则可以在作业节点上预留存储资源和网络资源; 当上午9点需要对数据加载作业进行调度时,由于作业节点上已经预留了存储资源和网络资源,则可以保证数据加载作业被正常调度。本发明实施例中,针对资源释放的情况,如果释放一种资源,则该种资源为此次调度的关键资源;如果同时释放多种资源,则选取资源比重较大的资源为此次调度的关键资源,如果多种资源比重相当,则随机选取一种资源为关键资源。进一步的,选择以此次调度关键资源为最高优先级需求的队列作为此次调度的优先调度队列,如果多个队列均满足条件,则随机选取一个队列,同时确定第二优先调度队列,第三优先调度队列,以此类推;之后,在选中队列队首选取一个子任务作为调度目标,派发该子任务到上述释放资源的作业节点执行。当然,实际应用中到释放资源的作业节点执行的子任务可以根据实际情况任意选择,并不局限于上述关键资源的方式,例如,可以采用轮询的方式依次从各队列中选择子任务执行等,本发明实施例中不再赘述。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。实施例三基于与上述方法同样的发明构思,本发明实施例三提供一种任务调度的系统,该系统包括资源调度器,用于确定各作业节点的资源信息以及存储任务的各队列对应资源的优先级信息;并根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点;作业节点,用于当接收到所述资源调度器调度的任务时,对所述任务进行相应处理。实施例四为了更加清楚的阐述本发明实施例提供的技术方案,以下结合具体的应用场景对本发明实施例进行进一步的说明。如图3所示的系统逻辑架构示意图和图4所示的部署架构示意图,该方法应用于作业管理系统中。外部请求以作业形式提交至作业管理系统,且作业以恰当的方式被分解为若干子任务,每个子任务依赖于一定的计算、存储或网络资源完成其操作;另外,作业管理系统由多个作业节点构成,每个作业节点拥有一定的计算、存储和网络资源;当作业到达后,先由作业调度模块分配至某一作业队列;之后历史资源分析模块和队列资源预判模块将根据历史作业执行情况,动态调整作业队列占用的各种资源 (以优先级和分配系数方式调整);并将子任务以恰当的方式分配到作业节点运行。在综合资源调度过程中,作业运行时被分解为多个子任务,可以适当的方式同时在多个节点上运行;综合资源调度需要综合考虑不同作业类型的作业的特点和各个作业节点上资源配置及使用情况。在资源调度过程中,分为以下情况,(1)输入情况对于若干队列,每个队列中已存在若干作业,资源调度器可根据当前队列快照产生调度策略。(2)输出情况每个作业中的每个子任务被分配到相应的硬件资源上运行(即子任务被分配到哪个作业节点,何时在该作业节点上启动子任务)。( 调度策略资源调度器根据当前作业分布状况,得到系统可用资源分布图(即各作业节点的CPU、硬盘、网络资源空闲状况列表等),并根据当前已提交所有作业的优先级信息和上述资源图,按照作业和队列的优先级设置将子任务进行派发。优选的,当有资源释放(一种或多种)时,作业调度模块获取调度特征信息<C[x, a% ], S[y, b% ], N[z, c% ]>,此向量中内容分别代表此作业队列计算(C),存储(S)和网络(N)资源的优先级及优先概率。如果释放一种资源,则该种资源为此次调度的关键资源; 若同时释放多种资源,则选取资源比重较大的资源为此次调度的关键资源(例如,同时释放了的计算和2%的网络资源,则认为此次调度的关键资源为网络资源),若多种资源比重相当,则随机选取一种为关键资源。之后,选择以此次调度关键资源为最高优先级需求的队列作为此次调度的优先调度队列,如果多个队列满足则随即选取一个队列,并同时确定第二优先调度队列,第三优先调度队列,以此类推。之后,在选中队列队首选取一个子任务作为调度目标,派发该子任务到前述释放资源的节点执行。本发明实施例四提供的任务调度的方法中,(1)队列个数可人为设定,也可在运行时根据系统作业执行情况动态增减;(2)调度依赖于计算、存储、网络资源数量,当系统中作业节点数目或相关部署情况发生变化时,资源数量随之变化;C3)各个作业队列占有的资源百分比可根据各类作业复杂性、历史和经验数据预先设定,系统运行后可以动态调整; (4)各个作业队列资源可共享,当某个队列中没有任务执行时,则其资源可被自动释放给其他队列占用,一旦有作业到来时,则需要等待到资源被释放才可执行;(5)为了避免等待时间过长和资源浪费,可根据实际情况进行资源预留;(6)将不同类型的作业调度至不同的队列中,可保证当多种作业同时提交时,每个作业均有部分资源进行执行,不至于造成作业堵塞,低优先级的后台维护作业被饿死的情况。基于上述情况,如图5所示,本发明实施例四提供的任务调度的方法中,包括以下步骤步骤501,新作业到达。步骤502,判断该作业是否为已知作业类型;如果是,执行步骤503,否则,执行步骤 504。步骤503,获取作业类型。其中,该作业类型包括但不限于数据加载、数据查询、后台管理等。本步骤之后,执行步骤505。步骤504,获取作业特征信息,并根据该作业特征信息确定作业类型。其中,由于该作业不是已知类型,则需根据获取的作业特征信息确定相应的作业类型。具体的,在作业管理系统运行过程中,可根据作业特征信息(未知类型作业的作业特征信息)动态生成新的作业类型。步骤505,作业调度模块将作业投入对应的队列等待运行。其中,对于已知类型的作业,可直接将该作业作为任务存储到对应的队列中(由于是已知类型,则之前已经存在了作业类型所对应的队列);对于未知类型的作业,可根据经验为动态生成的作业类型设置队列,并将该作业作为任务存储到该设置的队列中,该未知类型转变为已知类型。步骤506,当作业满足运行条件时,执行队列中的作业,将作业内各子任务按照作业所属队列的调度策略进行分配。具体的,可根据各作业节点的资源使用情况以及作业所属队列的队列对应资源的优先级信息将作业内各子任务分配到合适的作业节点中运行。
需要注意的是,在作业执行过程中,资源监控模块还可收集资源占用的情况和作业特征信息,从而可根据收集结果确定当前的资源占用情况,并为其他队列中的子任务分配提供基础。步骤507,当作业运行结束时,触发历史资源分析模块向资源监控模块询问该作业资源使用情况。步骤508,根据获取的信息更新该作业所属作业类型的作业特征信息。实际应用中,如果作业特征信息变化较大,还可通知队列资源预判模块作业特征信息的变化。综上所述,本发明实施例中,通过统筹考虑各种类型的作业,根据各作业节点的资源剩余情况将队列中的任务分配到合适的作业节点,以合理调度各种类型的作业。通过统一管理各种类型的作业,不会出现某种类型的作业消耗系统的所有资源导致其他作业堵塞的情况。另外,对于多种资源根据优先级统一进行调度,充分利用了现有资源,减少作业执行平均等待时间;而且针对作业特点预留资源,保证作业可在短时间内开始运行。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种任务调度的方法,其特征在于,包括确定各作业节点的资源信息以及存储任务的各队列对应资源的优先级信息;根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点。
2.如权利要求1所述的方法,其特征在于,所述确定各作业节点的资源信息以及各队列对应资源的优先级信息,之前还包括当有作业需要调度时,根据作业调度特征信息确定作业类型,并根据该作业类型将该作业作为任务存储到对应的队列中;其中,不同的队列用于存储不同作业类型的作业。
3.如权利要求1所述的方法,其特征在于,各作业节点的资源信息包括各作业节点的不同资源类型的资源的信息;各队列对应资源的优先级信息包括各队列对应不同资源类型的资源的优先级信息。
4.如权利要求3所述的方法,其特征在于,不同资源类型的资源包括计算资源、存储资源和网络资源;所述确定各队列对应资源的优先级信息,包括设置每个队列对应计算资源的优先级信息、对应存储资源的优先级信息、对应网络资源的优先级信息。
5 如权利要求1所述的方法,其特征在于,根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点,包括将所述队列中的任务划分为子任务,并根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的子任务分配到对应的作业节点。
6.如权利要求5所述的方法,其特征在于,所述根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的子任务分配到对应的作业节点,包括根据每个队列对应每种资源的优先级信息以及各作业节点的每种资源的空闲情况,将所述队列中的子任务分配到对应的作业节点。
7.如权利要求6所述的方法,其特征在于,每种资源为计算资源、存储资源或网络资源;根据每个队列对应每种资源的优先级信息以及各作业节点的每种资源的空闲情况,将所述队列中的子任务分配到对应的作业节点,包括当队列对应计算资源具有最高优先级时,将所述队列中的子任务分配到计算资源剩余情况最优的作业节点;当队列对应存储资源具有最高优先级时,将所述队列中的子任务分配到存储资源剩余情况最优的作业节点;当队列对应网络资源具有最高优先级时,将所述队列中的子任务分配到网络资源剩余情况最优的作业节点。
8.如权利要求1-7任一项所述的方法,其特征在于,各队列对应资源的优先级信息包括各队列对应不同资源类型的资源的优先级概率;其中,所有资源类型的资源的优先级概率之和为100%。
9.如权利要求1所述的方法,其特征在于,所述确定各作业节点的资源信息以及各队列对应资源的优先级信息,之前还包括根据作业调度特征信息为对应的业务预留作业节点的资源。
10.一种任务调度的设备,其特征在于,包括第一确定模块,用于确定各作业节点的资源信息;第二确定模块,用于确定存储任务的各队列对应资源的优先级信息;分配模块,用于根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点。
11.如权利要求10所述的设备,其特征在于,还包括第三确定模块,用于当有作业需要调度时,根据作业调度特征信息确定作业类型;存储模块,用于根据该作业类型将该作业作为任务存储到对应的队列中;其中,不同的队列用于存储不同作业类型的作业。
12.如权利要求10所述的设备,其特征在于,各作业节点的资源信息包括各作业节点的不同资源类型的资源的信息;各队列对应资源的优先级信息包括各队列对应不同资源类型的资源的优先级信息。
13.如权利要求12所述的设备,其特征在于,不同资源类型的资源包括计算资源、存储资源和网络资源;所述第二确定模块,具体用于设置每个队列对应计算资源的优先级信息、对应存储资源的优先级信息、对应网络资源的优先级信息。
14.如权利要求10所述的设备,其特征在于,所述分配模块,具体用于将所述队列中的任务划分为子任务,并根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的子任务分配到对应的作业节点。
15.如权利要求14所述的设备,其特征在于,所述分配模块,进一步用于根据每个队列对应每种资源的优先级信息以及各作业节点的每种资源的空闲情况,将所述队列中的子任务分配到对应的作业节点。
16.如权利要求15所述的设备,其特征在于,每种资源为计算资源、存储资源或网络资源;所述分配模块,进一步用于当队列对应计算资源具有最高优先级时,将所述队列中的子任务分配到计算资源剩余情况最优的作业节点;当队列对应存储资源具有最高优先级时,将所述队列中的子任务分配到存储资源剩余情况最优的作业节点;当队列对应网络资源具有最高优先级时,将所述队列中的子任务分配到网络资源剩余情况最优的作业节点。
17.如权利要求10-16任一项所述的设备,其特征在于,各队列对应资源的优先级信息包括各队列对应不同资源类型的资源的优先级概率;其中,所有资源类型的资源的优先级概率之和为100%。
18.如权利要求10所述的设备,其特征在于,还包括预留模块,用于根据作业调度特征信息为对应的业务预留作业节点的资源。
19.一种任务调度的系统,其特征在于,包括资源调度器,用于确定各作业节点的资源信息以及存储任务的各队列对应资源的优先级信息;并根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点;作业节点,用于当接收到所述资源调度器调度的任务时,对所述任务进行相应处理。
全文摘要
本发明公开了一种任务调度的方法、设备和系统,该方法包括确定备作业节点的资源信息以及存储任务的各队列对应资源的优先级信息;根据各作业节点的资源信息和各队列对应资源的优先级信息将所述队列中的任务分配到对应的作业节点。本发明实施例中,通过统筹考虑各种类型的作业,根据各作业节点的资源信息将队列中的任务分配到合适的作业节点,以合理调度各种类型的作业。通过统一管理各种类型的作业,不会出现某种类型的作业消耗系统的所有资源导致其他作业堵塞的情况。
文档编号G06F9/46GK102567086SQ20101062354
公开日2012年7月11日 申请日期2010年12月30日 优先权日2010年12月30日
发明者周大, 罗治国, 郭磊涛, 钱岭, 齐骥 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1