分布式数据仓库中的任务调度方法及系统的制作方法

文档序号:6603373阅读:315来源:国知局
专利名称:分布式数据仓库中的任务调度方法及系统的制作方法
分布式数据仓库中的任务调度方法及系统
技术领域
本发明涉及数据处理技术领域,尤其涉及一种分布式数据仓库中的任务调度方法及系统。
背景技术
数据仓库(Data Warehouse)是决策支持系统和联机分析应用数据源的结构化数据环境,能研究和解决从数据库中获取信息的问题。分布式数据仓库指使用基于 GFS (Google File System,一个可扩展的分布式文件系统)和MapReduce (—种编程模型, 用于大规模数据集的并行运算)相关技术提供海量存储和计算服务的数据仓库解决方案。采用MapReduce编程模型实现的分布式数据仓库,在进行多任务调度时通常采用 FIFO (First Input First Output,先进先出)调度策略,即用户提交一个任务(job)后,根据任务提交的时间和任务优先级确定任务在FIFO队列中的位置,队列最前面的任务优先得到系统的所有计算资源。图1示出了传统的分布式数据仓库中FIFO队列中的任务调度序列图,其描述了 3 个任务在FIFO队列中的调度过程。假设系统总共有2个M(Map)和2个R(Reduce)计算资源。最开始任务1占用了所有的计算资源,2个M计算资源和2个R计算资源同时被调度起来,单斜线填充的表示任务正在运行。任务1的2个M计算资源结束后变成交叉线填充,接着继续调度2个M计算资源,最后任务1只剩下一个M计算资源需要调度,多出的资源则分配给任务2。然而,传统的这种任务调度方式会有任务分配资源不公平,资源不能得到合理分配的问题。例如大任务和小任务一起运行时,队列中有一些小任务可能夹杂在大任务中间, 这样会导致小任务长期处于饥渴状态,因此无法满足分布式数据仓库的应用场景既要满足用户非实时的大任务的同时还需要快速响应的实时小任务的要求。

发明内容基于此,有必要提供一种能合理分配资源的分布式数据仓库中的任务调度方法。—种分布式数据仓库中的任务调度方法,包括以下步骤A.按类型将任务分为多个任务组,分别设定应分配给任务组的资源比例;B.根据所述资源比例对所述多个任务组进行资源分配。步骤A是按类型将任务分为关键任务组、实时任务组和非实时任务组。该方法还可包括实时统计关键任务组中的任务正在运行的子任务数及需要运行的子任务数、实时任务组中的任务正在运行的子任务数及需要运行的子任务数、非实时任务组中的任务正在运行的子任务数及需要运行的子任务数、关键任务组中正在运行的子任务总数及需要运行的子任务总数、实时任务组中正在运行的子任务总数及需要运行的子任务总数、非实时任务组中正在运行的子任务总数及需要运行的子任务总数。其中,步骤B可以是B1.判断所述关键任务组中是否有需运行的子任务,若是,则执行步骤B2,否则执行步骤B3 ;B2.按照所述关键任务组的调度策略将资源分配给关键任务组中的子任务;B3.对所述实时任务组和非实时任务组进行资源分配。其中,步骤B3具体可以是B31.根据所述资源比例获取所述实时任务组的资源额度,判断是否有资源分配给实时任务组,若是,则执行步骤B32,否则执行步骤B34 ;B32.判断所述实时任务组中是否有需要运行的子任务且实时任务组内正在运行的子任务总数小于所述实时任务组的资源额度,若是,则执行步骤B33,否则执行步骤B34 ;B33.按照所述实时任务组的调度策略将资源分配给所述实时任务组中的子任务;B34.根据所述资源比例获取非实时任务组的资源额度,判断是否有资源分配给非实时任务组,若是,则执行步骤 B35,否则执行步骤B37 ;B35.判断所述非实时任务组中是否有需要运行的子任务且非实时任务组内正在运行的子任务总数小于非实时任务组的资源额度,若是,则执行步骤B36,否则结束;B36.按照所述非实时任务组中的调度策略将资源分配给所述非实时任务组中的子任务。其中,该方法还可以包括当所述非实时任务组中没有需要运行的子任务或非实时任务组内正在运行的子任务总数大于非实时任务组的资源额度时,根据所述资源比例获取实时任务组的资源额度,进一步判断是否有资源分配给实时任务组,若是,则进一步判断所述实时任务组中是否有需运行的子任务且实时任务组内正在运行的子任务总数小于实时任务组的资源额度,若是,则按照实时任务组中的调度策略将资源分配给所述实时任务组中的子任务,否则结束。此外,还有必要提供一种能合理分配资源的分布式数据仓库中的任务调度系统。一种分布式数据仓库中的任务调度系统,包括分组模块,按类型将任务分为多个任务组,分别设定应分配给所述任务组的资源比例;资源分配模块,根据所述资源比例对所述多个任务组进行资源分配。该分组模块可按类型将任务分为关键任务组、实时任务组和非实时任务组。该系统还可包括计数器,用于实时统计关键任务组中的任务正在运行的子任务数及需要运行的子任务数、实时任务组中的任务正在运行的子任务数及需要运行的子任务数、非实时任务组中的任务正在运行的子任务数及需要运行的子任务数、关键任务组中正在运行的子任务总数及需要运行的子任务总数、实时任务组中正在运行的子任务总数及需要运行的子任务总数、非实时任务组中正在运行的子任务总数及需要运行的子任务总数。其中,资源分配模块还可用于判断所述关键任务组中是否有需运行的子任务,若是,则按照所述关键任务组的调度策略将资源分配给关键任务组中的子任务,否则对所述实时任务组和非实时任务组进行资源分配。其中,资源分配模块还可用于根据所述资源比例获取实时任务组的资源额度,判断是否有资源分配给实时任务组,若是,则进一步判断所述实时任务组中是否有需要运行的子任务且实时任务组内正在运行的子任务总数小于实时任务组的资源额度,若是,则按照所述实时任务组的调度策略将资源分配给所述实时任务组中的子任务,否则根据所述资源比例获取非实时任务组的资源额度,判断是否有资源分配给非实时任务组,若是,则进一步判断所述非实时任务组中是否有需要运行的子任务且非实时任务组内正在运行的子任务总数小于非实时任务组的资源额度,若是,则按照所述非实时任务组中的调度策略将资源分配给所述非实时任务组中的子任务,否则结束。
其中,资源分配模块还可用于当所述非实时任务组中没有需要运行的子任务或非实时任务组内正在运行的子任务总数大于非实时任务组的资源额度时,根据所述资源比例获取实时任务组的资源额度,进一步判断是否有资源分配给实时任务组,若是,则进一步判断所述实时任务组中是否有需运行的子任务且实时任务组内正在运行的子任务总数小于实时任务组的资源额度,若是,则按照实时任务组中的调度策略将资源分配给所述实时任务组中的子任务,否则结束。上述分布式数据仓库中的任务调度方法及系统,通过任务分为多个任务组,并分别设定应分配给不同任务组的资源比例,根据资源比例对多个任务组进行资源分配,能合理分配资源。此外,通过将任务分为关键任务组、实时任务组、非实时任务组,能在资源分配时, 优先将资源分配给关键任务组;由于设定了这三个任务组的资源比例,能获取到每个任务组的资源额度,在关键任务组不需要资源时,根据实时任务组和非实时任务组的资源额度进行调配,不仅能满足非实时任务的资源需求,也能满足实时任务的资源需求,能够快速响应实时任务,使资源得到合理且充分的利用。并且,不同的任务组可采用不同的适合该任务组的调度策略,因此能更合理的分配资源。

图1为传统分布式数据仓库中FIFO队列中的任务调度序列图;图2为本发明中分布式数据仓库中的任务调度方法的流程图;图3为一个实施例中对任务组进行资源分配的方法流程图;图4为一个实施例中对实时任务组和非实时任务组进行资源分配的方法流程图;图5为一个实施例中分布式数据仓库中的任务调度系统的结构示意图;图6为另一个实施例中分布式数据仓库中的任务调度系统的结构示意图。
具体实施方式如图2所示,一种分布式数据仓库中的任务调度方法,包括以下步骤步骤S10,按类型将任务分为多个任务组,分别设定应分配给任务组的资源比例。 在一个实施方式中,根据任务的类型将任务分为多个任务组,例如关键任务组、实时任务组和非实时任务组等,其中,关键任务组包括一些需要定时输出且非常重要的关键任务,例如部门的日报、月报等;实时任务组包括需要及时处理的小任务;非实时任务组则包括不需要及时处理的大任务。将任务分组后,可为不同的任务组设定优先级,例如优先处理关键任务组中的任务,其次处理需要及时处理的实时任务组中的任务,然后是非实时任务组中的任务。该实施方式中,分别设定应分配给关键任务组、实时任务组和非实时任务组的资源比例,根据资源比例可在任意时刻计算得到每个任务组的资源额度,所谓资源额度,指的是应分配给任务组的资源数,当任务组中正在运行的子任务数量达到了该任务组的资源额度,可认为已满足了该任务组的需求。在一个实施例中,设定应分配给关键任务组的资源比例为所有资源的100%,应分配给实时任务组的资源比例为在满足关键任务组的计算需求后剩余资源的20%,应分配给非实时任务组的资源比例为在满足关键任务组的计算需求后剩余资源的80%。该实施例中,系统有400个计算资源,此时,则分配给关键任务组的资源为400个(即关键任务组的资源额度为400),满足关键任务组的计算需求后的剩余资源为 200个资源,则分配给实时任务组的资源数为40个(即实时任务组的资源额度为40),而分配给非实时任务组的资源数为160个(即非实时任务组的资源额度为160)。在一个实施例中,上述方法还包括实时统计关键任务组中的任务正在运行的子任务数及需要运行的子任务数、实时任务组中的任务正在运行的子任务数及需要运行的子任务数、非实时任务组中的任务正在运行的子任务数及需要运行的子任务数、关键任务组中正在运行的子任务总数及需要运行的子任务总数、实时任务组中正在运行的子任务总数及需要运行的子任务总数、非实时任务组中正在运行的子任务总数及需要运行的子任务总数。步骤S20,根据所述资源比例对多个任务组进行资源分配。按照上述实施方式将任务分为关键任务组、实时任务组和非实时任务组,由于关键任务组的优先级最高,因此需优先满足关键任务组的资源需求。在一个实施例中,在进行资源分配之前,清除所有任务组中的已完成任务。在一个实施例中,如图3所示,步骤S20的具体过程为步骤S210,判断关键任务组中是否有需运行的子任务,若是,则执行步骤S220,否则执行步骤S230。由于关键任务组中的任务需要优先处理,根据实时统计的关键任务组中的任务需要运行的子任务数及需要运行的子任务总数即可判断关键任务组中是否有需要运行的子任务,关键任务组中的任务中需要运行的子任务数为零或需要运行的子任务总数为零,则无需分配资源给关键任务组,进入步骤S230,如果不为零,则进入步骤S220。步骤S220,按照关键任务组的调度策略将资源分配给关键任务组中的子任务。关键任务组通常运行的是大任务,可采用FIFO策略,即任务根据提交的时间和优先级在FIFO 队列进行排序,资源分配给关键任务组中排序靠前且优先级高的子任务。步骤S230,对实时任务组和非实时任务组进行资源分配。当关键任务组中没有需运行的子任务时,则资源将分配给实时任务组或非实时任务组中的子任务。如图4所示,在一个实施例中,步骤S230的具体过程为步骤S2301,根据应分配给实时任务组的资源比例获取实时任务组的资源额度。由于事先设定了应分配给实时任务组的资源比例,当关键任务组没有需要运行的子任务时, 此时刷新实时任务组的资源额度,即计算得到实时任务组的资源额度为满足关键任务组的需求后的剩余资源个数与相应资源比例的乘值。步骤S2302,判断是否有资源分配给实时任务组,若是,则执行步骤S2303,否则执行步骤S2305。实时任务组的资源额度大于零,则表明此时有资源分配给实时任务组。步骤S2303,判断实时任务组中是否有需要运行的子任务且实时任务组内正在运行的子任务总数小于实时任务组的资源额度,若是,则执行步骤S2304,否则执行步骤 S2305。根据统计的实时任务组中的任务需要运行的子任务数及需要运行的子任务总数即可判断实时任务组中是否有需要运行的子任务,当任务中需要运行的子任务数或需要运行的子任务总数不为零时,则表明实时任务组中有需要运行的子任务。当正在运行的子任务总数小于实时任务组的资源额度时,表明可将资源分配给实时任务组以满足实时任务组的需求。
步骤S2304,按照实时任务组的调度策略将资源分配给实时任务组中的子任务。实时任务组通常运行的是需及时处理的小任务,可采用并发执行策略,即按任务的饥渴程度进行排序,分配的资源越少的任务越饥渴,同时可限制并发执行的子任务数量,将资源分配给实时任务组中的子任务。步骤S2305,根据应分配给非实时任务组的资源比例获取非实时任务组的资源额度。由于事先设定了应分配给非实时任务组的资源比例,此时刷新非实时任务组的资源额度,即计算得到非实时任务组的资源额度为满足关键任务组的需求后的剩余资源个数与相应资源比例的乘值。步骤S2306,判断是否有资源分配给非实时任务组,若是,则执行步骤S2307,否则执行步骤S2309。非实时任务组的资源额度大于零,表明有资源分配给非实时任务组。步骤S2307,判断非实时任务组中是否有需要运行的子任务且非实时任务组内正在运行的子任务总数小于非实时任务组的资源额度,若是,则执行步骤S2308,否则执行步骤S2309。根据统计的非实时任务组中的任务需要运行的子任务数或需要运行的子任务总数即可判断非实时任务组中是否有需要运行的子任务,当任务中需要运行的子任务数不为零或需要运行的子任务总数不为零时,则表明非实时任务组中有需要运行的子任务。当正在运行的子任务总数小于非实时任务组的资源额度时,表明可将资源分配给非实时任务组以满足非实时任务组的需求。步骤S2308,按照非实时任务组的调度策略将资源分配给非实时任务组中的子任务。非实时任务组通常运行的是大任务,可采用FIFO策略,即任务根据提交的时间和优先级在FIFO队列进行排序,资源分配给非实时任务组中排序靠前且优先级高的子任务。步骤S2309,根据应分配给实时任务组的资源比例获取实时任务组的资源额度。此时再次刷新实时任务组的资源额度,即计算得到实时任务组的资源额度为满足关键任务组的需求后的剩余资源个数与相应资源比例的乘值。步骤S2310,判断是否有资源分配给实时任务组,若是,则执行步骤S2311,否则结束。实时任务组的资源额度大于零,则表明有资源分配给实时任务组。步骤S2311,判断实时任务组中是否有需要运行的子任务且实时任务组中正在运行的子任务总数小于实时任务组的资源额度,若是,则进入步骤S2312,否则结束。当统计的实时任务组中的任务需要运行的子任务或需要运行的子任务总数不为零时,且统计的需要运行的子任务总数小于实时任务组的资源额度时,则表明可将资源分配给实时任务组以满足实时任务组的需求。步骤S2312,按照实时任务组的调度策略将资源分配给实时任务组中的子任务。如上所示,实时任务组按照并发执行策略将资源分配其中的子任务。上述判断资源不需要分配给非实时任务组后再次判断是否将资源分配给实时任务组,能够充分满足需要及时处理的实时小任务的需求,也就是说在满足非实时任务组的需求后可能还剩有资源,此时可以用来满足实时任务组的需求,使得资源能够得到充分的利用。下面举一个实例来说明上述分布式数据仓库中的任务调度方法的具体过程。该实例中,系统一共有400个计算资源,设定应分配给关键任务组的资源比例为所有资源的 100%,应分配给实时任务组的资源比例为满足关键任务组的需求后的剩余资源的20%,应分配给非实时任务组的资源比例为满足关键任务组的需求后的剩余资源的80%。关键任务组中有200个子任务需要运行,实时任务组中有180个子任务,非实时任务组中有400个子任务。此时,关键任务组的资源额度为200,实时任务组的资源额度为40,非实时任务组的资源额度为160。运行一段时间后,关键任务组中的子任务运行完毕,此时刷新得到关键任务组的资源额度为0,实时任务组的资源额度为80,非实时任务组的资源额度为320。若此时关键任务组中新增了 200个子任务,则刷新得到关键任务组的资源额度为400,实时任务组的资源额度为40,非实时任务组的资源额度为160。而剩余的这200个资源是否分配给实时任务组或非实时任务组中的子任务,需按照上述方法进行资源分配。对剩余的200个资源的任意一个,首先需判断是否有资源分配给实时任务组,由于实时任务组的资源额度不为零,因此有资源分配给实时任务组,再进一步判断实时任务组中此时是否有需要运行的子任务且正在运行的子任务总数是否小于实时任务组的资源额度,若是,则将该资源分配给实时任务组,否则认为此时已满足了实时任务组的需求,不需要再将资源分配给实时任务组,则进一步判断是否有资源分配给非实时任务组,具体过程参照上面的描述,在此则不再赘述。如图5所示,一种分布式数据仓库中的任务调度系统,包括分组模块10和资源分配模块40,其中分组模块10用于按类型将任务分为多个任务组,分别设定应分配给任务组的资源比例。资源分配模块40根据所述资源比例将多个任务组进行资源分配。在一个实施方式中,分组模块10是将任务分配为关键任务组、实时任务组和非实时任务组,其中关键任务组中包含需要及时处理且比较重要的任务,实时任务组包含需要及时处理的小任务,非实时任务组包含不需要及时处理的一些大任务。在一个实施例中,分组模块10设定应分配给关键任务组的资源比例为所有资源的100%,应分配给实时任务组的资源比例为在满足关键任务组的计算需求后剩余资源的20%,应分配给非实时任务组的资源比例为在满足关键任务组的计算需求后剩余资源的80%。如图2所示,在一个实施例中,该系统除了包括上述分组模块10、资源分配模块40 外,还包括任务清除模块20和计数器30,其中任务清除模块20用于在分配资源之前清楚任务组中的已完成任务。计数器30包括关键任务组计数器310、实时任务组计数器320和非实时任务组计数器330,其中关键任务组计数器310用来实时统计关键任务组中的任务中正在运行的子任务和需要运行子任务,以及关键任务组中正在运行的子任务总数及需要运行的子任务总数;实时任务组计数器320用来实时统计实时任务组中的任务中正在运行的子任务和需要运行的子任务,以及实时任务组中正在运行的子任务总数及需要运行的子任务总数;非实时任务组计数器330用来实时统计非实时任务组中的任务中正在运行的子任务和需要运行的子任务,以及非实时任务组中正在运行的子任务总数及需要运行的子任务总数。在一个实施例中,资源分配模块40用于判断关键任务组中是否有需要运行的子任务,当计数器30统计的关键任务组中的任务中需要运行的子任务或需要运行的子任务总数不为零时,则表明有需要运行的子任务,则按照关键任务组的调度策略将资源分配给关键任务组中的子任务,否则对实时任务组和非实时任务组进行资源分配。关键任务组通常包含的都是大任务,采用先进先出策略,按照先进先出策略将资源分配给关键任务组的子任务。资源分配模块40进一步根据分组模块10设定的资源比例获取实时任务组的资源额度,判断是否有资源分配给实时任务组,若是,则进一步判断实时任务组中是否有需运行的子任务且实时任务组内正在运行的子任务总数小于实时任务组的资源额度,若是,表明此时没有充分满足实时任务组的资源额度,则按照实时任务组的调度策略将资源分配给实时任务组中的子任务,实时任务组包含的是需要及时处理的小任务,可采用并发执行策略将资源分配给实时任务组中的子任务,否则对非实时任务组进行资源分配。资源分配模块40用于根据资源比例获取非实时任务组的资源额度,判断是否有资源配给非实时任务组,若是,则进一步判断所述非实时任务组中是否有需要运行的子任务且非实时任务组内正在运行的子任务总数小于非实时任务组的资源额度,若是,则按照非实时任务组中的调度策略将资源分配给所述非实时任务组中的子任务,同理,非实时任务组包含的是大任务,可采用先进先出策略将资源分配给非实时任务组中的子任务,否则结束。在一个优选实施例中,当所述非实时任务组中没有需要运行的子任务或非实时任务组内正在运行的子任务总数大于非实时任务组的资源额度时,还可以再次对实时任务组进行资源分配,以充分满足需要及时处理的实时任务组的需求,使资源得到充分的利用。资源分配模块40还用于当所述非实时任务组中没有需要运行的子任务或非实时任务组内正在运行的子任务总数大于非实时任务组的资源额度时,根据资源比例获取实时任务组的资源额度,进一步判断是否有资源分配给实时任务组,若是则进一步判断实时任务组中是否有需运行的子任务且实时任务组内正在运行的子任务总数小于实时任务组的资源额度,若是,则按照实时任务组中的调度策略将资源分配给实时任务组中的子任务,否则结束。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种分布式数据仓库中的任务调度方法,包括以下步骤A.按类型将任务分为多个任务组,分别设定应分配给任务组的资源比例;B.根据所述资源比例对所述多个任务组进行资源分配。
2.根据权利要求1所述的分布式数据仓库中的任务调度方法,其特征在于,所述步骤A 是按类型将任务分为关键任务组、实时任务组和非实时任务组。
3.根据权利要求2所述的分布式数据仓库中的任务调度方法,其特征在于,所述方法还包括实时统计关键任务组中的任务正在运行的子任务数及需要运行的子任务数、实时任务组中的任务正在运行的子任务数及需要运行的子任务数、非实时任务组中的任务正在运行的子任务数及需要运行的子任务数、关键任务组中正在运行的子任务总数及需要运行的子任务总数、实时任务组中正在运行的子任务总数及需要运行的子任务总数、非实时任务组中正在运行的子任务总数及需要运行的子任务总数。
4.根据权利要求3所述的分布式数据仓库中的任务调度方法,其特征在于,所述步骤B是Bi.判断所述关键任务组中是否有需运行的子任务,若是,则执行步骤B2,否则执行步骤B3 ;B2.按照所述关键任务组的调度策略将资源分配给关键任务组中的子任务; B3.对所述实时任务组和非实时任务组进行资源分配。
5.根据权利要求4所述的分布式数据仓库中的任务调度方法,其特征在于,所述步骤 B3具体是B31.根据所述资源比例获取所述实时任务组的资源额度,判断是否有资源分配给实时任务组,若是,则执行步骤B32,否则执行步骤B34 ;B32.判断所述实时任务组中是否有需要运行的子任务且实时任务组内正在运行的子任务总数小于所述实时任务组的资源额度,若是,则执行步骤B33,否则执行步骤B34 ; B33.按照所述实时任务组的调度策略将资源分配给所述实时任务组中的子任务; B34.根据所述资源比例获取非实时任务组的资源额度,判断是否有资源分配给非实时任务组,若是,则执行步骤B35,否则执行步骤B37 ;B35.判断所述非实时任务组中是否有需要运行的子任务且非实时任务组内正在运行的子任务总数小于非实时任务组的资源额度,若是,则执行步骤B36,否则结束;B36.按照所述非实时任务组中的调度策略将资源分配给所述非实时任务组中的子任务。
6.根据权利要求5所述的分布式数据仓库中的任务调度方法,其特征在于,所述方法还包括当所述非实时任务组中没有需要运行的子任务或非实时任务组内正在运行的子任务总数大于非实时任务组的资源额度时,根据所述资源比例获取实时任务组的资源额度,进一步判断是否有资源分配给实时任务组,若是,则进一步判断所述实时任务组中是否有需运行的子任务且实时任务组内正在运行的子任务总数小于实时任务组的资源额度,若是, 则按照实时任务组中的调度策略将资源分配给所述实时任务组中的子任务,否则结束。
7.一种分布式数据仓库中的任务调度系统,其特征在于,包括分组模块,按类型将任务分为多个任务组,分别设定应分配给所述任务组的资源比例;资源分配模块,根据所述资源比例对所述多个任务组进行资源分配。
8.根据权利要求7所述的分布式数据仓库中的任务调度系统,其特征在于,所述分组模块按类型将任务分为关键任务组、实时任务组和非实时任务组。
9.根据权利要求8所述的分布式数据仓库中的任务调度系统,其特征在于,所述系统还包括计数器,用于实时统计关键任务组中的任务正在运行的子任务数及需要运行的子任务数、实时任务组中的任务正在运行的子任务数及需要运行的子任务数、非实时任务组中的任务正在运行的子任务数及需要运行的子任务数、关键任务组中正在运行的子任务总数及需要运行的子任务总数、实时任务组中正在运行的子任务总数及需要运行的子任务总数、非实时任务组中正在运行的子任务总数及需要运行的子任务总数。
10.根据权利要求9所述的分布式数据仓库中的任务调度系统,其特征在于,所述资源分配模块还用于判断所述关键任务组中是否有需运行的子任务,若是,则按照所述关键任务组的调度策略将资源分配给关键任务组中的子任务,否则对所述实时任务组和非实时任务组进行资源分配。
11.根据权利要求10所述的分布式数据仓库中的任务调度系统,其特征在于,所述资源分配模块还用于根据所述资源比例获取实时任务组的资源额度,判断是否有资源分配给实时任务组,若是,则进一步判断所述实时任务组中是否有需要运行的子任务且实时任务组内正在运行的子任务总数小于实时任务组的资源额度,若是,则按照所述实时任务组的调度策略将资源分配给所述实时任务组中的子任务,否则根据所述资源比例获取非实时任务组的资源额度,判断是否有资源分配给非实时任务组,若是,则进一步判断所述非实时任务组中是否有需要运行的子任务且非实时任务组内正在运行的子任务总数小于非实时任务组的资源额度,若是,则按照所述非实时任务组中的调度策略将资源分配给所述非实时任务组中的子任务,否则结束。
12.根据权利要求11所述的分布式数据仓库中的任务调度系统,其特征在于,所述资源分配模块还用于当所述非实时任务组中没有需要运行的子任务或非实时任务组内正在运行的子任务总数大于非实时任务组的资源额度时,根据所述资源比例获取实时任务组的资源额度,进一步判断是否有资源分配给实时任务组,若是,则进一步判断所述实时任务组中是否有需运行的子任务且实时任务组内正在运行的子任务总数小于实时任务组的资源额度,若是,则按照实时任务组中的调度策略将资源分配给所述实时任务组中的子任务,否则结束。
全文摘要
本发明提供了一种分布式数据仓库中的任务调度方法及系统,所述方法包括以下步骤A.按类型将任务分为多个任务组,分别设定应分配给任务组的资源比例;B.根据所述资源比例对所述多个任务组进行资源分配。所述系统包括包括分组模块,按类型将任务分为多个任务组,分别设定应分配给所述任务组的资源比例;资源分配模块,根据所述资源比例对所述多个任务组进行资源分配。采用本发明提供的分布式数据库仓库中的任务调度方法及系统,能够合理分配资源,不仅能满足实时的小任务的计算需求,也能满足非实时的大任务的计算需求。
文档编号G06F9/48GK102243598SQ201010188509
公开日2011年11月16日 申请日期2010年5月14日 优先权日2010年5月14日
发明者李均, 洪坤乾, 赵伟, 郭玮 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1