一种分布式系统任务调度的方法和装置的制造方法_2

文档序号:9506054阅读:来源:国知局
示意图;
[0052]图4是本发明的一种分布式系统任务调度的方法实施例2的步骤流程图;
[0053]图5是本发明的一种分布式系统计算资源申请的步骤流程图;
[0054]图6是本发明的一种分布式系统资源调度的整体步骤流程图;
[0055]图7是本发明的一种分布式系统任务调度的装置实施例的结构框图。
【具体实施方式】
[0056]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0057]在云计算领域中,分布式的任务调度系统十分常见。参照图1所示的一种分布式的任务调度系统的架构示意图,在一个分布式系统中,常常运行着多个计算框架,每个计算框架产生大量的计算任务,计算框架通过向任务调度器请求计算资源,来使这些计算任务运行起来。计算资源由计算节点提供,计算框架一旦获取到计算资源,即在该计算节点上运行计算任务。在传统的调度方式中,任务调度器为计算框架提供计算资源时,有如下几种方法:
[0058]1、先进先出。即一旦获知计算节点有计算资源,立即提供给计算框架。
[0059]2、最多空闲资源优先。比较任务调度系统的集群中所有计算节点的空闲资源,将空闲资源最多的计算节点的计算资源提供给计算框架,以避免各个计算节点的资源分配不均。
[0060]3、按资源类型优化的分配方法。单个计算节点上通常有多种类型的计算资源,比如CPU、内存、磁盘等。任务调度器根据这些资源的利用率,提供给适合的计算任务,以免单个计算节点上各类计算资源分配不均。
[0061]然而,在上面提及的几个方法中,都没有考虑到计算框架和计算资源之间的亲和度关系。也就是说,每次分配计算资源时,都是重新计算最优资源策略,而没有考虑历史运行因素。因此,这几个方法存在如下两个缺点:
[0062]1、短计算任务的计算框架不容易获取到计算资源。假设计算框架A产生的计算任务时长较长,计算框架B产生的计算任务时长较短,那么一旦分配计算资源给计算框架A的计算任务,那么这些计算资源很长时间都不会被释放,计算框架B很可能很长时间处于饥饿状态,获取不到计算资源,无法执行计算任务。
[0063]2、不利于缓存计算任务。很多计算任务会在计算节点上留下缓存,以便下次能够快速启动。传统分布式系统的任务调度器相当于将计算任务分配到随机计算节点,这导致计算任务的缓存没有被利用,导致计算任务初始化/运行速度相对于单机要慢。
[0064]基于上述几个方法存在的问题,本专利的发明人创造性地提出将传统的无状态计算资源调度策略,改为有状态的计算资源调度策略。具体来说,即记录计算资源分配历史,优先将计算资源分配给之前使用过此计算资源的计算框架。这样,首先解决了短计算任务的计算框架不容易获取到计算资源的问题。短计算任务运行完成后,释放的计算资源会优先提供给该短任务框架,而不会长计算任务占用。其次,由于计算资源分配给同一个计算框架,计算任务的缓存?目息得以利用,使得计算任务运行效率更尚。
[0065]参照图2,示出了本发明的一种分布式系统任务调度的方法实施例1的步骤流程图,所述分布式系统可以包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的方法具体可以包括如下步骤:
[0066]步骤101,接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
[0067]步骤102,判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在所述缓存资源池中存在与所述框架标识对应的亲和资源,则执行步骤103 ;
[0068]步骤103,将所述亲和资源分配给所述计算框架执行计算任务。
[0069]在具体实现中,在任务调度器中加入一个缓存资源池,该缓存资源池中包括有亲和资源。亲和资源是计算框架执行计算任务时所使用过的计算资源,计算资源由计算节点提供,由于计算任务会在计算节点上留下缓存数据,因此如果计算框架再次调动该计算资源,那么就能够快速启动,从而提尚执彳丁效率。
[0070]参照图3所示的本发明的一种分布式的任务调度系统的架构示意图,在任务调度器的缓存资源池中包括计算框架Α对应的A类亲和资源,计算框架B对应的B类亲和资源,以及计算框架C对应的C类亲和资源。
[0071 ] 以计算框架A为例,当计算框架A需要执行计算任务时,会向任务调度器发送资源请求,任务调度器则根据该资源请求在缓存资源池中查找有无计算框架A对应的A类亲和资源。任务调度器是根据计算框架A的框架标识A,去查找缓存资源池中查找是否有具有相同的框架标识A的A类亲和资源,若有,则分配给计算框架A该A类亲和资源,计算框架A则可以根据A类亲和资源执行计算任务。
[0072]在本发明实施例中,将计算框架执行计算任务使用过的计算资源作为亲和资源存入缓存资源池中,当计算框架再次请求计算资源时,将优先将该计算框架的亲和资源分配给该计算框架,由于在提供计算资源的计算节点中留下了缓存数据,因此可以充分利用缓存数据,使得计算框架执行计算任务时能够快速启动,从而提高了执行效率。
[0073]参照图4,示出了本发明的一种分布式系统任务调度的方法实施例2的步骤流程图,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,
[0074]在本发明的一种优选实施例中,所述的方法还可以包括如下步骤:
[0075]步骤S11,当所述计算框架采用计算资源执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
[0076]步骤S12,将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
[0077]在本发明的一种优选实施例中,所述的方法还可以包括如下步骤:
[0078]步骤S21,按照预设周期减少所述缓存资源池中亲和资源的亲和度;
[0079]步骤S22,判断所述亲和资源的亲和度是否低于或等于第二预设阈值;若所述亲和资源的亲和度低于或等于第二预设阈值,则执行步骤S23 ;
[0080]步骤S23,将所述亲和资源从所述缓存资源池中移除。
[0081]在本发明实施例中,当有计算框架执行完计算任务时,会将执行该计算任务的计算资源,标记为该计算框架的亲和资源存入到缓存资源池中,便于以后当该计算框架再次请求计算资源时,可以将留有缓存数据的计算资源分配给该计算框架,以提高执行效率。为了表明计算框架与计算资源的联系程度,还会为亲和资源设置初始的亲和度,该初始的亲和度的值会随着时间降低。
[0082]在本发明具体应用的一种示例中,计算框架A执行完计算任务时,为计算框架A所使用的计算资源打上其框架标识A,然后再作为其A类亲和资源存入到缓存资源池中,以供后续再次请求时能够优先分配给计算框架A。
[0083]在本发明实施例中在初始化阶段或者启动的时候,按照一定的时间周期去减少亲和资源与计算框架之间的亲和度,避免其他的计算框架不能够使用该亲和资源,造成资源的浪费。
[0084]在本发明具体应用的一种示例中,第二预设阈值可以设定为0,初始的亲和度的值可以设定为60。在分布式系统的初始化阶段或者启动的时候,开启一个定时器,以每隔一分钟的周期,定时器触发一次,对缓存资源池中所有资源的亲和度进行减少的操作。例如,假设计算框架A与A类亲和资源的初始亲和度的值是60,定时器触发时,缓存资源池内所有亲和资源的亲和度的值减少1,那么再一小时后亲和度的值会降为0。此时,如果发现有亲和资源的亲和度的值为0,则将从缓存资源池中移除该亲和资源。
[0085]本发明实施例中在亲和资源的亲和度的值高于一定阈值时,比如高于10的情形下,该亲和资源是不会除了分配给其他的计算框架,从而可以保证计算框架能够优先调度其亲和资源。因此,只有亲和资源的亲和度的值低于一定阈值的时候,比如亲和度的值低于或等于10,它才可以被分配给其他的计算框架,当然,仍然会优先分配给与该亲和资源对应的计算框架。
[0086]需要说明的是,上述周期、阈值以及初始的亲和度的值仅仅作为示例,在本发明实施例中也可以根据实际情况选用合适的数值进行周期、阈值以及初始的亲和度的值的设置,本发明实施例对此不加以限制。
[0087]所述的方法具体可以包括如下步骤:
[0088]步骤201,接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
[0089]步骤202,判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在缓存资源池中存在与所述框架标识对应的亲和资源,则执行步骤203 ;若在缓存资源池中不存在与所述框架标识对应的亲和资源,则执行步骤204 ;
[0090]步骤203,将所述亲和资源分配给所述计算框架执行计算任务;
[0091]步骤204,判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则执行步骤205 ;若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则执行步骤206 ;
[0092]步骤205,将所述亲和资源分配给所述计算框架执行计算任务。
[0093]步骤206,判断在所述缓存资源池之外的地方是否存在非亲
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1