CN105260244A - 一种分布式系统任务调度的方法和装置 - Google Patents
一种分布式系统任务调度的方法和装置 Download PDFInfo
- Publication number
- CN105260244A CN105260244A CN201510728102.XA CN201510728102A CN105260244A CN 105260244 A CN105260244 A CN 105260244A CN 201510728102 A CN201510728102 A CN 201510728102A CN 105260244 A CN105260244 A CN 105260244A
- Authority
- CN
- China
- Prior art keywords
- resource
- affine
- computational
- cache resources
- resources pond
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明实施例提供了一种分布式系统任务调度的方法和装置,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的方法包括:接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在所述缓存资源池中存在与所述框架标识对应的亲和资源,则将所述亲和资源分配给所述计算框架执行计算任务。本发明实施例用以提高计算框架执行计算任务时的运行效率。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种分布式系统任务调度的方法和一种分布式系统任务调度的装置。
背景技术
云计算(CloudComputing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
在云计算领域中,分布式的任务调度系统十分常见。通常使用物理机或虚拟机作为计算单元,称为计算节点。每个计算节点中拥有多种计算资源的类型,比如中央处理器CPU(CentralProcessingUnit)、内存、硬盘、网络带宽等等。另外,在分布式计算系统中,将执行一系列计算任务的集合称为计算框架,每个计算框架对应一个或一组特定的功能,例如,用于统计用户行为的计算框架、用于进行视频转码的计算框架等等。
在一个分布式系统中,常常运行着多个计算框架,每个计算框架产生大量的计算任务,计算框架通过向任务调度器请求计算资源,来使这些计算任务运行起来。计算资源由计算节点提供,计算框架一旦获取到计算资源,即在该计算节点上运行计算任务。然而,传统的调度策略是一种无状态计算资源调度策略,一般是获知有计算节点有计算资源,就会随机提供给计算框架,因此经常导致计算资源分配不均。例如,有些计算框架可能长时间占用计算资源,有些计算框架则可能长时间处于饥饿状态,任务运行效率较低。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种分布式系统任务调度的方法和一种分布式系统任务调度的装置。
为了解决上述问题,本发明实施例公开了一种分布式系统任务调度的方法,其特征在于,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的方法包括:
接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;
若在所述缓存资源池中存在与所述框架标识对应的亲和资源,则将所述亲和资源分配给所述计算框架执行计算任务。
优选地,缓存资源池中的亲和资源具有对应的亲和度,在所述判断在缓存资源池中是否存在与所述框架标识对应的亲和资源的步骤之后,还包括:
若在所述缓存资源池中不存在与所述框架标识对应的亲和资源,则判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;
若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则将所述亲和资源分配给所述计算框架执行计算任务。
优选地,在所述判断在缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源的步骤之后,还包括:
若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则判断在所述缓存资源池之外的地方是否存在非亲和资源;
若在所述缓存资源池之外的地方存在非亲和资源,则将所述非亲和资源分配给所述计算框架执行计算任务;
若在所述缓存资源池之外的地方不存在非亲和资源,则拒绝所述计算框架发送的资源请求。
优选地,计算资源包括亲和资源和非亲和资源,所述的方法还包括:
当所述计算框架采用计算资源执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
优选地,所述的方法还包括:
按照预设周期减少所述缓存资源池中亲和资源的亲和度;
判断所述亲和资源的亲和度是否低于或等于第二预设阈值;
若所述亲和资源的亲和度低于或等于第二预设阈值,则将所述亲和资源从所述缓存资源池中移除。
优选地,所述第一预设阈值为10,所述第二预设阈值为0,所述初始的亲和度为60,所述预设周期为1分钟。
本发明实施例还公开了一种分布式系统任务调度的装置,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的装置包括:
请求接收模块,用于接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
第一判断模块,用于判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在所述缓存资源池中存在与所述框架标识对应的亲和资源,则调用第一资源分配模块;若在所述缓存资源池中不存在与所述框架标识对应的亲和资源,则调用第二判断模块;
第一资源分配模块,用于将所述亲和资源分配给所述计算框架执行计算任务。
优选地,缓存资源池中的亲和资源具有对应的亲和度,还包括:
第二判断模块,用于判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则调用第二资源分配模块,若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则调用第三判断模块;
第二资源分配模块,用于将所述亲和资源分配给所述计算框架执行计算任务。
优选地,所述装置还包括:
第三判断模块,用于判断在所述缓存资源池之外的地方是否存在非亲和资源;若在所述缓存资源池之外的地方存在非亲和资源,则调用第三资源分配模块,若在所述缓存资源池之外的地方不存在非亲和资源,则调用请求拒绝模块;
第三资源分配模块,用于将所述非亲和资源分配给所述计算框架执行计算任务;
请求拒绝模块,用于拒绝所述计算框架发送的资源请求。
优选地,计算资源包括亲和资源和非亲和资源,所述的装置还包括:
亲和度设置模块,用于在所述计算框架采用计算资源执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
亲和资源存入模块,用于将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
优选地,所述装置还包括:
亲和度减少模块,用于按照预设周期减少所述缓存资源池中亲和资源的亲和度;
第四判断模块,用于判断所述亲和资源的亲和度是否低于或等于第二预设阈值;若所述亲和资源的亲和度低于或等于第二预设阈值,则调用亲和资源移除模块;
亲和资源移除模块,用于将所述亲和资源从所述缓存资源池中移除。
本发明实施例包括以下优点:
本发明实施例中,分布式系统中的计算框架申请计算资源去执行计算任务时,优先将缓存资源池中的其对应的亲和资源分配给该计算框架,使得计算框架能够使用之前使用过的计算资源,由于使用过的计算资源会留有缓存信息,因此使得计算框架执行缓存信息得以利用,计算框架执行计算任务时运行效率更高。
在本发明实施例优先将计算资源分配给在先使用过该计算资源的计算框架,解决了短时长计算任务的计算框架饥饿的问题,应用本发明实施例可以在计算框架将短时长的计算任务运行完成后,将释放的计算资源会优先提供给该短时长的任务框架,而不会被长时长的计算任务占用。
在本发明实施例如果在缓存资源池中没有找到计算框架对应的亲和资源,那么还可以在缓存资源池中将低于预设阈值的亲和资源分配给计算框架,当然,高于预设阈值的亲和资源则不会被分配给计算框架,从而仍然保证了计算资源的能够优先分配给在先使用过的计算框架。
在本发明实施例如果在缓存资源池中没有找到计算框架低于预设阈值的亲和资源,那么还以在缓存资源池之外的其他地方查找是否存在非亲和的计算资源,若存在,则可以分配给计算框架,反之,若不存在,则可以拒绝计算框架申请计算资源的请求。
在本发明实施例在计算框架利用计算资源执行完计算任务后,还可以将该计算资源作为其亲和资源存入到缓存资源池中,并设置相应的初始的亲和度的值。此外,在本发明实施例中为了避免缓存资源池中亲和资源一直不能被其他的计算框架调用,还可以设定定时器定时减少亲和资源的亲和度的值,从而使得其低于预设阈值时,可以被其他的计算框架调用,当然,在不低于预设阈值时,可以设置为不能被其他的计算框架调用,当亲和资源的亲和度的值为0时,还可以将该亲和资源从缓存资源池中移除。
附图说明
图1是一种分布式的任务调度系统的架构示意图;
图2是本发明的一种分布式系统任务调度的方法实施例1的步骤流程图;
图3是本发明的一种分布式的任务调度系统的架构示意图;
图4是本发明的一种分布式系统任务调度的方法实施例2的步骤流程图;
图5是本发明的一种分布式系统计算资源申请的步骤流程图;
图6是本发明的一种分布式系统资源调度的整体步骤流程图;
图7是本发明的一种分布式系统任务调度的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在云计算领域中,分布式的任务调度系统十分常见。参照图1所示的一种分布式的任务调度系统的架构示意图,在一个分布式系统中,常常运行着多个计算框架,每个计算框架产生大量的计算任务,计算框架通过向任务调度器请求计算资源,来使这些计算任务运行起来。计算资源由计算节点提供,计算框架一旦获取到计算资源,即在该计算节点上运行计算任务。在传统的调度方式中,任务调度器为计算框架提供计算资源时,有如下几种方法:
1、先进先出。即一旦获知计算节点有计算资源,立即提供给计算框架。
2、最多空闲资源优先。比较任务调度系统的集群中所有计算节点的空闲资源,将空闲资源最多的计算节点的计算资源提供给计算框架,以避免各个计算节点的资源分配不均。
3、按资源类型优化的分配方法。单个计算节点上通常有多种类型的计算资源,比如CPU、内存、磁盘等。任务调度器根据这些资源的利用率,提供给适合的计算任务,以免单个计算节点上各类计算资源分配不均。
然而,在上面提及的几个方法中,都没有考虑到计算框架和计算资源之间的亲和度关系。也就是说,每次分配计算资源时,都是重新计算最优资源策略,而没有考虑历史运行因素。因此,这几个方法存在如下两个缺点:
1、短计算任务的计算框架不容易获取到计算资源。假设计算框架A产生的计算任务时长较长,计算框架B产生的计算任务时长较短,那么一旦分配计算资源给计算框架A的计算任务,那么这些计算资源很长时间都不会被释放,计算框架B很可能很长时间处于饥饿状态,获取不到计算资源,无法执行计算任务。
2、不利于缓存计算任务。很多计算任务会在计算节点上留下缓存,以便下次能够快速启动。传统分布式系统的任务调度器相当于将计算任务分配到随机计算节点,这导致计算任务的缓存没有被利用,导致计算任务初始化/运行速度相对于单机要慢。
基于上述几个方法存在的问题,本专利的发明人创造性地提出将传统的无状态计算资源调度策略,改为有状态的计算资源调度策略。具体来说,即记录计算资源分配历史,优先将计算资源分配给之前使用过此计算资源的计算框架。这样,首先解决了短计算任务的计算框架不容易获取到计算资源的问题。短计算任务运行完成后,释放的计算资源会优先提供给该短任务框架,而不会长计算任务占用。其次,由于计算资源分配给同一个计算框架,计算任务的缓存信息得以利用,使得计算任务运行效率更高。
参照图2,示出了本发明的一种分布式系统任务调度的方法实施例1的步骤流程图,所述分布式系统可以包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的方法具体可以包括如下步骤:
步骤101,接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
步骤102,判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在所述缓存资源池中存在与所述框架标识对应的亲和资源,则执行步骤103;
步骤103,将所述亲和资源分配给所述计算框架执行计算任务。
在具体实现中,在任务调度器中加入一个缓存资源池,该缓存资源池中包括有亲和资源。亲和资源是计算框架执行计算任务时所使用过的计算资源,计算资源由计算节点提供,由于计算任务会在计算节点上留下缓存数据,因此如果计算框架再次调动该计算资源,那么就能够快速启动,从而提高执行效率。
参照图3所示的本发明的一种分布式的任务调度系统的架构示意图,在任务调度器的缓存资源池中包括计算框架A对应的A类亲和资源,计算框架B对应的B类亲和资源,以及计算框架C对应的C类亲和资源。
以计算框架A为例,当计算框架A需要执行计算任务时,会向任务调度器发送资源请求,任务调度器则根据该资源请求在缓存资源池中查找有无计算框架A对应的A类亲和资源。任务调度器是根据计算框架A的框架标识A,去查找缓存资源池中查找是否有具有相同的框架标识A的A类亲和资源,若有,则分配给计算框架A该A类亲和资源,计算框架A则可以根据A类亲和资源执行计算任务。
在本发明实施例中,将计算框架执行计算任务使用过的计算资源作为亲和资源存入缓存资源池中,当计算框架再次请求计算资源时,将优先将该计算框架的亲和资源分配给该计算框架,由于在提供计算资源的计算节点中留下了缓存数据,因此可以充分利用缓存数据,使得计算框架执行计算任务时能够快速启动,从而提高了执行效率。
参照图4,示出了本发明的一种分布式系统任务调度的方法实施例2的步骤流程图,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,
在本发明的一种优选实施例中,所述的方法还可以包括如下步骤:
步骤S11,当所述计算框架采用计算资源执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
步骤S12,将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
在本发明的一种优选实施例中,所述的方法还可以包括如下步骤:
步骤S21,按照预设周期减少所述缓存资源池中亲和资源的亲和度;
步骤S22,判断所述亲和资源的亲和度是否低于或等于第二预设阈值;若所述亲和资源的亲和度低于或等于第二预设阈值,则执行步骤S23;
步骤S23,将所述亲和资源从所述缓存资源池中移除。
在本发明实施例中,当有计算框架执行完计算任务时,会将执行该计算任务的计算资源,标记为该计算框架的亲和资源存入到缓存资源池中,便于以后当该计算框架再次请求计算资源时,可以将留有缓存数据的计算资源分配给该计算框架,以提高执行效率。为了表明计算框架与计算资源的联系程度,还会为亲和资源设置初始的亲和度,该初始的亲和度的值会随着时间降低。
在本发明具体应用的一种示例中,计算框架A执行完计算任务时,为计算框架A所使用的计算资源打上其框架标识A,然后再作为其A类亲和资源存入到缓存资源池中,以供后续再次请求时能够优先分配给计算框架A。
在本发明实施例中在初始化阶段或者启动的时候,按照一定的时间周期去减少亲和资源与计算框架之间的亲和度,避免其他的计算框架不能够使用该亲和资源,造成资源的浪费。
在本发明具体应用的一种示例中,第二预设阈值可以设定为0,初始的亲和度的值可以设定为60。在分布式系统的初始化阶段或者启动的时候,开启一个定时器,以每隔一分钟的周期,定时器触发一次,对缓存资源池中所有资源的亲和度进行减少的操作。例如,假设计算框架A与A类亲和资源的初始亲和度的值是60,定时器触发时,缓存资源池内所有亲和资源的亲和度的值减少1,那么再一小时后亲和度的值会降为0。此时,如果发现有亲和资源的亲和度的值为0,则将从缓存资源池中移除该亲和资源。
本发明实施例中在亲和资源的亲和度的值高于一定阈值时,比如高于10的情形下,该亲和资源是不会除了分配给其他的计算框架,从而可以保证计算框架能够优先调度其亲和资源。因此,只有亲和资源的亲和度的值低于一定阈值的时候,比如亲和度的值低于或等于10,它才可以被分配给其他的计算框架,当然,仍然会优先分配给与该亲和资源对应的计算框架。
需要说明的是,上述周期、阈值以及初始的亲和度的值仅仅作为示例,在本发明实施例中也可以根据实际情况选用合适的数值进行周期、阈值以及初始的亲和度的值的设置,本发明实施例对此不加以限制。
所述的方法具体可以包括如下步骤:
步骤201,接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
步骤202,判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在缓存资源池中存在与所述框架标识对应的亲和资源,则执行步骤203;若在缓存资源池中不存在与所述框架标识对应的亲和资源,则执行步骤204;
步骤203,将所述亲和资源分配给所述计算框架执行计算任务;
步骤204,判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则执行步骤205;若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则执行步骤206;
步骤205,将所述亲和资源分配给所述计算框架执行计算任务。
步骤206,判断在所述缓存资源池之外的地方是否存在非亲和资源;若在所述缓存资源池之外的地方存在非亲和资源,则执行步骤207,若在所述缓存资源池之外的地方不存在非亲和资源,则执行步骤208;
步骤207,将所述非亲和资源分配给所述计算框架执行计算任务;
步骤208,拒绝所述计算框架发送的资源请求。
在本发明实施例中,当计算框架需要执行计算任务时,向任务调度器发送资源请求,如果在缓存资源池能找到计算框架对应的亲和资源,则可以直接分配给该计算框架;反之,如果在缓存资源池不能找到计算框架对应的亲和资源,那么将在缓存资源池或者其他位置获取其他的计算资源。
由于在任务调度器中可以设置为高于预设阈值的亲和资源不能被其他资源调用,故在缓存资源池不能找到计算框架对应的亲和资源时,可以在缓存资源池查找是否存在亲和度的值低于预设阈值的亲和资源,如果存在亲和度的值低于预设阈值的亲和资源,则可以将该亲和资源分配给计算框架。例如,本发明实施例中的第一预设阈值可以设为10,如果在缓存资源池中存在随着时间亲和度的值减少到低于或等于10的亲和资源,那么就可以将该亲和资源分配给计算框架。
需要说明的是,上述阈值仅仅作为示例,在本发明实施例中也可以根据实际情况选用合适的数值进行阈值的设置,本发明实施例对此不加以限制。
在实际应用中,可能缓存资源池中的亲和资源已经被其他计算框架给调用了,那么还可以到其他的地方去寻找为非亲和资源的计算资源,如果能够找到计算资源,就会分配给计算框架,当然,也有可能找不到计算资源,那么就会给计算框架发送的针对其资源请求的响应消息,表明不能找到计算资源,拒绝该资源请求。
参照图5所示的本发明的一种计算资源申请的步骤流程图,本示例中简要介绍了计算框架申请计算资源的过程,具体可以包括如下步骤:
步骤1,计算框架向任务调度器发送申请计算资源的请求;
步骤2,任务调度器检查缓存资源池中是否存在该计算框架对应的亲和资源;若存在,则执行步骤5,若不存在,则执行步骤3;
步骤3,任务调度器检查缓存资源池中是否存低于预设阈值的亲和资源;若存在,则执行步骤5,若不存在,则执行步骤4;
步骤4,任务调度器检查是否存在有非亲和资源;若存在,则执行步骤5,若不存在,则执行步骤6;
步骤5,任务调度器将该亲和资源分配给该计算框架;或者,任务调度器将低于预设阈值的亲和资源分配给该计算框架;或者,任务调度器将低于预设阈值的亲和资源分配给该计算框架;
步骤6,任务调度器拒绝该申请计算资源的请求。
为了使本领域技术人员更好地理解本发明实施例的整体情况,以下采用具体的示例对于资源调度的整体过程进行说明。参照图6所示的本发明的一种资源调度的整体步骤流程图,具体可以包括如下步骤:
步骤1,当计算框架执行完计算任务后,释放计算资源;
步骤2,将该计算资源作为该计算框架的亲和资源放入缓存资源池中;
步骤3,为该计算框架的亲和资源设置初始的亲和度的值;
步骤4,判断是否接收到计算框架申请计算资源的请求;若是,则执行步骤5,若否,则执行步骤7;
步骤5,判断缓存资源池中是否是存在该计算框架的亲和资源;若是,则执行步骤6,若否,则执行步骤8;
步骤6,为该计算框架分配对应的亲和资源;或者,为该计算框架分配亲和度低于预设阈值的亲和资源;或者,从缓存资源池之外的其他位置获取计算资源;
步骤7,判断缓存资源池中是否是存在亲和度低于预设阈值的亲和资源;若是,执行步骤6;
步骤8,按照定时器设定的时间周期定时减少没有分配给计算框架的亲和资源的亲和度的值;
步骤9,判断缓存资源池中亲和资源的亲和度是否大于0;若是,则可以返回继续执行步骤7,若否,则执行步骤10;
步骤10,将缓存资源池中亲和度为0的亲和资源移除。
需要说明的是,在上述流程中的步骤8和步骤9这两个步骤是由定时器来触发的,即是按照定时器的设定时间,当达到设定时间时,才去执行减少亲和资源的亲和度,以及检查亲和资源的亲和度是否大于0。
本发明实施例中,分布式系统中的计算框架申请计算资源去执行计算任务时,优先将缓存资源池中的其对应的亲和资源分配给该计算框架,使得计算框架能够使用之前使用过的计算资源,由于使用过的计算资源会留有缓存信息,因此使得计算框架执行缓存信息得以利用,计算框架执行计算任务时运行效率更高。
在本发明实施例优先将计算资源分配给在先使用过该计算资源的计算框架,解决了短时长计算任务的计算框架饥饿的问题,应用本发明实施例可以在计算框架将短时长的计算任务运行完成后,将释放的计算资源会优先提供给该短时长的任务框架,而不会被长时长的计算任务占用。
在本发明实施例如果在缓存资源池中没有找到计算框架对应的亲和资源,那么还可以在缓存资源池中将低于预设阈值的亲和资源分配给计算框架,当然,高于预设阈值的亲和资源则不会被分配给计算框架,从而仍然保证了计算资源的能够优先分配给在先使用过的计算框架。
在本发明实施例如果在缓存资源池中没有找到计算框架低于预设阈值的亲和资源,那么还以在缓存资源池之外的其他地方查找是否存在非亲和的计算资源,若存在,则可以分配给计算框架,反之,若不存在,则可以拒绝计算框架申请计算资源的请求。
在本发明实施例在计算框架利用计算资源执行完计算任务后,还可以将该计算资源作为其亲和资源存入到缓存资源池中,并设置相应的初始的亲和度的值。此外,在本发明实施例中为了避免缓存资源池中亲和资源一直不能被其他的计算框架调用,还可以设定定时器定时减少亲和资源的亲和度的值,从而使得其低于预设阈值时,可以被其他的计算框架调用,当然,在不低于预设阈值时,可以设置为不能被其他的计算框架调用,当亲和资源的亲和度的值为0时,还可以将该亲和资源从缓存资源池中移除。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了本发明的一种分布式系统任务调度的装置实施例的结构框图,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的装置具体可以包括如下模块:
请求接收模块301,用于接收所述计算框架发送的资源请求;所述计算框架具有对应的框架标识;
第一判断模块302,用于判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在缓存资源池中存在与所述框架标识对应的亲和资源,则调用第一资源分配模块;若在缓存资源池中不存在与所述框架标识对应的亲和资源,则调用第二判断模块;
第一资源分配模块303,用于将所述亲和资源分配给所述计算框架执行计算任务。
在本发明的一种优选实施例中,缓存资源池中的亲和资源可以具有对应的亲和度,所述的装置还可以包括如下模块:
第二判断模块,用于判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则调用第二资源分配模块,若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则调用第三判断模块;
第二资源分配模块,用于将所述亲和资源分配给所述计算框架执行计算任务。
在本发明的一种优选实施例中,所述的装置还可以包括如下模块:
第三判断模块,用于判断在所述缓存资源池之外的地方是否存在非亲和资源;若在所述缓存资源池之外的地方存在非亲和资源,则调用第三资源分配模块,若在所述缓存资源池之外的地方不存在非亲和资源,则调用请求拒绝模块;
第三资源分配模块,用于将所述非亲和资源分配给所述计算框架执行计算任务;
请求拒绝模块,用于拒绝所述计算框架发送的资源请求。
在本发明的一种优选实施例中,计算资源可以包括亲和资源和非亲和资源,所述的装置还可以包括如下模块:
亲和度设置模块,用于在所述计算框架执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
亲和资源存入模块,用于将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
在本发明的一种优选实施例中,所述的装置还可以包括如下模块:
亲和度减少模块,用于按照预设周期减少所述缓存资源池中亲和资源的亲和度;
第四判断模块,用于判断所述亲和资源的亲和度是否低于或等于第二预设阈值;若所述亲和资源的亲和度低于或等于第二预设阈值,则调用亲和资源移除模块;
亲和资源移除模块,用于将所述亲和资源从所述缓存资源池中移除。
在本发明的一种优选实施例中,所述第一预设阈值可以为10,所述第二预设阈值可以为0,所述初始的亲和度可以为60,所述预设周期可以为1分钟。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种分布式系统任务调度的方法和一种分布式系统任务调度的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种分布式系统任务调度的方法,其特征在于,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的方法包括:
接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;
若在所述缓存资源池中存在与所述框架标识对应的亲和资源,则将所述亲和资源分配给所述计算框架执行计算任务。
2.根据权利要求1所述的方法,其特征在于,缓存资源池中的亲和资源具有对应的亲和度,在所述判断在缓存资源池中是否存在与所述框架标识对应的亲和资源的步骤之后,还包括:
若在所述缓存资源池中不存在与所述框架标识对应的亲和资源,则判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;
若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则将所述亲和资源分配给所述计算框架执行计算任务。
3.根据权利要求2所述的方法,其特征在于,在所述判断在缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源的步骤之后,还包括:
若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则判断在所述缓存资源池之外的地方是否存在非亲和资源;
若在所述缓存资源池之外的地方存在非亲和资源,则将所述非亲和资源分配给所述计算框架执行计算任务;
若在所述缓存资源池之外的地方不存在非亲和资源,则拒绝所述计算框架发送的资源请求。
4.根据权利要求1或2或3所述的方法,其特征在于,计算资源包括亲和资源和非亲和资源,所述的方法还包括:
当所述计算框架采用计算资源执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
5.根据权利要求1所述的方法,其特征在于,还包括:
按照预设周期减少所述缓存资源池中亲和资源的亲和度;
判断所述亲和资源的亲和度是否低于或等于第二预设阈值;
若所述亲和资源的亲和度低于或等于第二预设阈值,则将所述亲和资源从所述缓存资源池中移除。
6.根据权利要求1或2或3或5所述的方法,其特征在于,所述第一预设阈值为10,所述第二预设阈值为0,所述初始的亲和度为60,所述预设周期为1分钟。
7.一种分布式系统任务调度的装置,其特征在于,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的装置包括:
请求接收模块,用于接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
第一判断模块,用于判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在所述缓存资源池中存在与所述框架标识对应的亲和资源,则调用第一资源分配模块;若在所述缓存资源池中不存在与所述框架标识对应的亲和资源,则调用第二判断模块;
第一资源分配模块,用于将所述亲和资源分配给所述计算框架执行计算任务。
8.根据权利要求7所述的装置,其特征在于,缓存资源池中的亲和资源具有对应的亲和度,还包括:
第二判断模块,用于判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则调用第二资源分配模块,若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则调用第三判断模块;
第二资源分配模块,用于将所述亲和资源分配给所述计算框架执行计算任务。
9.根据权利要求8所述的装置,其特征在于,还包括:
第三判断模块,用于判断在所述缓存资源池之外的地方是否存在非亲和资源;若在所述缓存资源池之外的地方存在非亲和资源,则调用第三资源分配模块,若在所述缓存资源池之外的地方不存在非亲和资源,则调用请求拒绝模块;
第三资源分配模块,用于将所述非亲和资源分配给所述计算框架执行计算任务;
请求拒绝模块,用于拒绝所述计算框架发送的资源请求。
10.根据权利要求7或8或9所述的装置,其特征在于,计算资源包括亲和资源和非亲和资源,所述的装置还包括:
亲和度设置模块,用于在所述计算框架采用计算资源执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
亲和资源存入模块,用于将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
11.根据权利要求7所述的装置,其特征在于,还包括:
亲和度减少模块,用于按照预设周期减少所述缓存资源池中亲和资源的亲和度;
第四判断模块,用于判断所述亲和资源的亲和度是否低于或等于第二预设阈值;若所述亲和资源的亲和度低于或等于第二预设阈值,则调用亲和资源移除模块;
亲和资源移除模块,用于将所述亲和资源从所述缓存资源池中移除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510728102.XA CN105260244B (zh) | 2015-10-30 | 2015-10-30 | 一种分布式系统任务调度的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510728102.XA CN105260244B (zh) | 2015-10-30 | 2015-10-30 | 一种分布式系统任务调度的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260244A true CN105260244A (zh) | 2016-01-20 |
CN105260244B CN105260244B (zh) | 2019-11-22 |
Family
ID=55099947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510728102.XA Active CN105260244B (zh) | 2015-10-30 | 2015-10-30 | 一种分布式系统任务调度的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260244B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095550A (zh) * | 2016-06-07 | 2016-11-09 | 百度在线网络技术(北京)有限公司 | 一种计算任务调度方法和装置 |
CN106095581A (zh) * | 2016-06-18 | 2016-11-09 | 南京采薇且歌信息科技有限公司 | 一种私有云条件下的网络存储虚拟化调度方法 |
CN107515784A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种在分布式系统中计算资源的方法与设备 |
CN110008024A (zh) * | 2019-04-02 | 2019-07-12 | 广西大学 | 一种多维约束下基于延迟决策的容器调度方法以及装置 |
WO2024055708A1 (zh) * | 2022-09-13 | 2024-03-21 | 上海寒武纪信息科技有限公司 | 任务调度方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207807A (zh) * | 2012-01-12 | 2013-07-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN103699445A (zh) * | 2013-12-19 | 2014-04-02 | 北京奇艺世纪科技有限公司 | 一种任务调度方法、装置及系统 |
CN104063283A (zh) * | 2014-06-09 | 2014-09-24 | 北京海泰方圆科技有限公司 | 一种资源管理器的资源调度方法 |
CN104199718A (zh) * | 2014-08-22 | 2014-12-10 | 上海交通大学 | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
CN104468756A (zh) * | 2014-11-27 | 2015-03-25 | 中国联合网络通信集团有限公司 | PaaS平台中实现负载分配的方法和装置 |
-
2015
- 2015-10-30 CN CN201510728102.XA patent/CN105260244B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207807A (zh) * | 2012-01-12 | 2013-07-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置 |
CN103699445A (zh) * | 2013-12-19 | 2014-04-02 | 北京奇艺世纪科技有限公司 | 一种任务调度方法、装置及系统 |
CN104063283A (zh) * | 2014-06-09 | 2014-09-24 | 北京海泰方圆科技有限公司 | 一种资源管理器的资源调度方法 |
CN104199718A (zh) * | 2014-08-22 | 2014-12-10 | 上海交通大学 | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
CN104468756A (zh) * | 2014-11-27 | 2015-03-25 | 中国联合网络通信集团有限公司 | PaaS平台中实现负载分配的方法和装置 |
Non-Patent Citations (1)
Title |
---|
无: "《基于局部性的最少链接》", 《WWW.XUEBUYUAN.COM/1874506.HTML》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095550A (zh) * | 2016-06-07 | 2016-11-09 | 百度在线网络技术(北京)有限公司 | 一种计算任务调度方法和装置 |
CN107515784A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种在分布式系统中计算资源的方法与设备 |
CN106095581A (zh) * | 2016-06-18 | 2016-11-09 | 南京采薇且歌信息科技有限公司 | 一种私有云条件下的网络存储虚拟化调度方法 |
CN110008024A (zh) * | 2019-04-02 | 2019-07-12 | 广西大学 | 一种多维约束下基于延迟决策的容器调度方法以及装置 |
WO2024055708A1 (zh) * | 2022-09-13 | 2024-03-21 | 上海寒武纪信息科技有限公司 | 任务调度方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105260244B (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107360206B (zh) | 一种区块链共识方法、设备及系统 | |
US11431794B2 (en) | Service deployment method and function management platform under serverless architecture | |
US11474874B2 (en) | Systems and methods for auto-scaling a big data system | |
CN105260244A (zh) | 一种分布式系统任务调度的方法和装置 | |
CN108667867B (zh) | 数据存储方法及装置 | |
CN103067425A (zh) | 虚拟机创建方法、虚拟机管理系统及相关设备 | |
CN102917025A (zh) | 一种云计算平台的业务迁移方法 | |
CN104461744A (zh) | 一种资源分配方法及装置 | |
CA3000422A1 (en) | Workflow service using state transfer | |
CN107704310B (zh) | 一种实现容器集群管理的方法、装置和设备 | |
CN112905339B (zh) | 任务调度执行方法、装置及系统 | |
Petrov et al. | Adaptive performance model for dynamic scaling Apache Spark Streaming | |
CN109960579B (zh) | 一种调整业务容器的方法及装置 | |
WO2016074130A1 (zh) | 一种系统调用命令的批处理方法及装置 | |
CN106874080B (zh) | 基于分布式服务器集群的数据计算方法及系统 | |
CN106815318B (zh) | 一种时序数据库的集群化方法及系统 | |
CN101833585A (zh) | 数据库服务器操作控制系统、方法及设备 | |
CN106933654A (zh) | 一种基于缓存的虚拟机启动方法 | |
CN103970592A (zh) | 交易中间件的单线程多任务处理方法及服务器 | |
CN110058929A (zh) | 一种混合环境下5g移动应用的计算迁移方法及系统 | |
CN108429704B (zh) | 一种节点资源分配方法及装置 | |
CN112637263B (zh) | 一种多数据中心资源优化提升方法、系统和存储介质 | |
CN114840347A (zh) | 一种mpc平台、算力池分配方法及电子设备 | |
Nasr et al. | Scheduling strategies in cloud computing: Methods and implementations | |
CN113485828A (zh) | 基于quartz的分布式任务调度系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |