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

文档序号:9506054阅读:307来源:国知局
一种分布式系统任务调度的方法和装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,特别是涉及一种分布式系统任务调度的方法和一种分布式系统任务调度的装置。
【背景技术】
[0002]云计算(Cloud Computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
[0003]在云计算领域中,分布式的任务调度系统十分常见。通常使用物理机或虚拟机作为计算单元,称为计算节点。每个计算节点中拥有多种计算资源的类型,比如中央处理器CPU (Central Processing Unit)、内存、硬盘、网络带宽等等。另外,在分布式计算系统中,将执行一系列计算任务的集合称为计算框架,每个计算框架对应一个或一组特定的功能,例如,用于统计用户行为的计算框架、用于进行视频转码的计算框架等等。
[0004]在一个分布式系统中,常常运行着多个计算框架,每个计算框架产生大量的计算任务,计算框架通过向任务调度器请求计算资源,来使这些计算任务运行起来。计算资源由计算节点提供,计算框架一旦获取到计算资源,即在该计算节点上运行计算任务。然而,传统的调度策略是一种无状态计算资源调度策略,一般是获知有计算节点有计算资源,就会随机提供给计算框架,因此经常导致计算资源分配不均。例如,有些计算框架可能长时间占用计算资源,有些计算框架则可能长时间处于饥饿状态,任务运行效率较低。

【发明内容】

[0005]鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种分布式系统任务调度的方法和一种分布式系统任务调度的装置。
[0006]为了解决上述问题,本发明实施例公开了一种分布式系统任务调度的方法,其特征在于,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的方法包括:
[0007]接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
[0008]判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;
[0009]若在所述缓存资源池中存在与所述框架标识对应的亲和资源,则将所述亲和资源分配给所述计算框架执行计算任务。
[0010]优选地,缓存资源池中的亲和资源具有对应的亲和度,在所述判断在缓存资源池中是否存在与所述框架标识对应的亲和资源的步骤之后,还包括:
[0011]若在所述缓存资源池中不存在与所述框架标识对应的亲和资源,则判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;
[0012]若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则将所述亲和资源分配给所述计算框架执行计算任务。
[0013]优选地,在所述判断在缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源的步骤之后,还包括:
[0014]若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则判断在所述缓存资源池之外的地方是否存在非亲和资源;
[0015]若在所述缓存资源池之外的地方存在非亲和资源,则将所述非亲和资源分配给所述计算框架执行计算任务;
[0016]若在所述缓存资源池之外的地方不存在非亲和资源,则拒绝所述计算框架发送的资源请求。
[0017]优选地,计算资源包括亲和资源和非亲和资源,所述的方法还包括:
[0018]当所述计算框架采用计算资源执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
[0019]将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
[0020]优选地,所述的方法还包括:
[0021]按照预设周期减少所述缓存资源池中亲和资源的亲和度;
[0022]判断所述亲和资源的亲和度是否低于或等于第二预设阈值;
[0023]若所述亲和资源的亲和度低于或等于第二预设阈值,则将所述亲和资源从所述缓存资源池中移除。
[0024]优选地,所述第一预设阈值为10,所述第二预设阈值为0,所述初始的亲和度为60,所述预设周期为1分钟。
[0025]本发明实施例还公开了一种分布式系统任务调度的装置,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的装置包括:
[0026]请求接收模块,用于接收计算框架发送的资源请求;所述计算框架具有对应的框架标识;
[0027]第一判断模块,用于判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在所述缓存资源池中存在与所述框架标识对应的亲和资源,则调用第一资源分配模块;若在所述缓存资源池中不存在与所述框架标识对应的亲和资源,则调用第二判断模块;
[0028]第一资源分配模块,用于将所述亲和资源分配给所述计算框架执行计算任务。
[0029]优选地,缓存资源池中的亲和资源具有对应的亲和度,还包括:
[0030]第二判断模块,用于判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则调用第二资源分配模块,若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则调用第三判断模块;
[0031]第二资源分配模块,用于将所述亲和资源分配给所述计算框架执行计算任务。
[0032]优选地,所述装置还包括:
[0033]第三判断模块,用于判断在所述缓存资源池之外的地方是否存在非亲和资源;若在所述缓存资源池之外的地方存在非亲和资源,则调用第三资源分配模块,若在所述缓存资源池之外的地方不存在非亲和资源,则调用请求拒绝模块;
[0034]第三资源分配模块,用于将所述非亲和资源分配给所述计算框架执行计算任务;
[0035]请求拒绝模块,用于拒绝所述计算框架发送的资源请求。
[0036]优选地,计算资源包括亲和资源和非亲和资源,所述的装置还包括:
[0037]亲和度设置模块,用于在所述计算框架采用计算资源执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
[0038]亲和资源存入模块,用于将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
[0039]优选地,所述装置还包括:
[0040]亲和度减少模块,用于按照预设周期减少所述缓存资源池中亲和资源的亲和度;
[0041]第四判断模块,用于判断所述亲和资源的亲和度是否低于或等于第二预设阈值;若所述亲和资源的亲和度低于或等于第二预设阈值,则调用亲和资源移除模块;
[0042]亲和资源移除模块,用于将所述亲和资源从所述缓存资源池中移除。
[0043]本发明实施例包括以下优点:
[0044]本发明实施例中,分布式系统中的计算框架申请计算资源去执行计算任务时,优先将缓存资源池中的其对应的亲和资源分配给该计算框架,使得计算框架能够使用之前使用过的计算资源,由于使用过的计算资源会留有缓存信息,因此使得计算框架执行缓存信息得以利用,计算框架执行计算任务时运行效率更高。
[0045]在本发明实施例优先将计算资源分配给在先使用过该计算资源的计算框架,解决了短时长计算任务的计算框架饥饿的问题,应用本发明实施例可以在计算框架将短时长的计算任务运行完成后,将释放的计算资源会优先提供给该短时长的任务框架,而不会被长时长的计算任务占用。
[0046]在本发明实施例如果在缓存资源池中没有找到计算框架对应的亲和资源,那么还可以在缓存资源池中将低于预设阈值的亲和资源分配给计算框架,当然,高于预设阈值的亲和资源则不会被分配给计算框架,从而仍然保证了计算资源的能够优先分配给在先使用过的计算框架。
[0047]在本发明实施例如果在缓存资源池中没有找到计算框架低于预设阈值的亲和资源,那么还以在缓存资源池之外的其他地方查找是否存在非亲和的计算资源,若存在,则可以分配给计算框架,反之,若不存在,则可以拒绝计算框架申请计算资源的请求。
[0048]在本发明实施例在计算框架利用计算资源执行完计算任务后,还可以将该计算资源作为其亲和资源存入到缓存资源池中,并设置相应的初始的亲和度的值。此外,在本发明实施例中为了避免缓存资源池中亲和资源一直不能被其他的计算框架调用,还可以设定定时器定时减少亲和资源的亲和度的值,从而使得其低于预设阈值时,可以被其他的计算框架调用,当然,在不低于预设阈值时,可以设置为不能被其他的计算框架调用,当亲和资源的亲和度的值为0时,还可以将该亲和资源从缓存资源池中移除。
【附图说明】
[0049]图1是一种分布式的任务调度系统的架构示意图;
[0050]图2是本发明的一种分布式系统任务调度的方法实施例1的步骤流程图;
[0051]图3是本发明的一种分布式的任务调度系统的架构
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1