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

文档序号:9506054阅读:来源:国知局
和资源;若在所述缓存资源池之外的地方存在非亲和资源,则执行步骤207,若在所述缓存资源池之外的地方不存在非亲和资源,则执行步骤208 ;
[0094]步骤207,将所述非亲和资源分配给所述计算框架执行计算任务;
[0095]步骤208,拒绝所述计算框架发送的资源请求。
[0096]在本发明实施例中,当计算框架需要执行计算任务时,向任务调度器发送资源请求,如果在缓存资源池能找到计算框架对应的亲和资源,则可以直接分配给该计算框架;反之,如果在缓存资源池不能找到计算框架对应的亲和资源,那么将在缓存资源池或者其他位置获取其他的计算资源。
[0097]由于在任务调度器中可以设置为高于预设阈值的亲和资源不能被其他资源调用,故在缓存资源池不能找到计算框架对应的亲和资源时,可以在缓存资源池查找是否存在亲和度的值低于预设阈值的亲和资源,如果存在亲和度的值低于预设阈值的亲和资源,则可以将该亲和资源分配给计算框架。例如,本发明实施例中的第一预设阈值可以设为10,如果在缓存资源池中存在随着时间亲和度的值减少到低于或等于10的亲和资源,那么就可以将该亲和资源分配给计算框架。
[0098]需要说明的是,上述阈值仅仅作为示例,在本发明实施例中也可以根据实际情况选用合适的数值进行阈值的设置,本发明实施例对此不加以限制。
[0099]在实际应用中,可能缓存资源池中的亲和资源已经被其他计算框架给调用了,那么还可以到其他的地方去寻找为非亲和资源的计算资源,如果能够找到计算资源,就会分配给计算框架,当然,也有可能找不到计算资源,那么就会给计算框架发送的针对其资源请求的响应消息,表明不能找到计算资源,拒绝该资源请求。
[0100]参照图5所示的本发明的一种计算资源申请的步骤流程图,本示例中简要介绍了计算框架申请计算资源的过程,具体可以包括如下步骤:
[0101]步骤1,计算框架向任务调度器发送申请计算资源的请求;
[0102]步骤2,任务调度器检查缓存资源池中是否存在该计算框架对应的亲和资源;若存在,则执行步骤5,若不存在,则执行步骤3 ;
[0103]步骤3,任务调度器检查缓存资源池中是否存低于预设阈值的亲和资源;若存在,则执行步骤5,若不存在,则执行步骤4 ;
[0104]步骤4,任务调度器检查是否存在有非亲和资源;若存在,则执行步骤5,若不存在,则执行步骤6;
[0105]步骤5,任务调度器将该亲和资源分配给该计算框架;或者,任务调度器将低于预设阈值的亲和资源分配给该计算框架;或者,任务调度器将低于预设阈值的亲和资源分配给该计算框架;
[0106]步骤6,任务调度器拒绝该申请计算资源的请求。
[0107]为了使本领域技术人员更好地理解本发明实施例的整体情况,以下采用具体的示例对于资源调度的整体过程进行说明。参照图6所示的本发明的一种资源调度的整体步骤流程图,具体可以包括如下步骤:
[0108]步骤1,当计算框架执行完计算任务后,释放计算资源;
[0109]步骤2,将该计算资源作为该计算框架的亲和资源放入缓存资源池中;
[0110]步骤3,为该计算框架的亲和资源设置初始的亲和度的值;
[0111]步骤4,判断是否接收到计算框架申请计算资源的请求;若是,则执行步骤5,若否,则执行步骤7;
[0112]步骤5,判断缓存资源池中是否是存在该计算框架的亲和资源;若是,则执行步骤6,若否,则执行步骤8;
[0113]步骤6,为该计算框架分配对应的亲和资源;或者,为该计算框架分配亲和度低于预设阈值的亲和资源;或者,从缓存资源池之外的其他位置获取计算资源;
[0114]步骤7,判断缓存资源池中是否是存在亲和度低于预设阈值的亲和资源;若是,执行步骤6 ;
[0115]步骤8,按照定时器设定的时间周期定时减少没有分配给计算框架的亲和资源的亲和度的值;
[0116]步骤9,判断缓存资源池中亲和资源的亲和度是否大于0 ;若是,则可以返回继续执行步骤7,若否,则执行步骤10 ;
[0117]步骤10,将缓存资源池中亲和度为0的亲和资源移除。
[0118]需要说明的是,在上述流程中的步骤8和步骤9这两个步骤是由定时器来触发的,即是按照定时器的设定时间,当达到设定时间时,才去执行减少亲和资源的亲和度,以及检查亲和资源的亲和度是否大于0。
[0119]本发明实施例中,分布式系统中的计算框架申请计算资源去执行计算任务时,优先将缓存资源池中的其对应的亲和资源分配给该计算框架,使得计算框架能够使用之前使用过的计算资源,由于使用过的计算资源会留有缓存信息,因此使得计算框架执行缓存信息得以利用,计算框架执行计算任务时运行效率更高。
[0120]在本发明实施例优先将计算资源分配给在先使用过该计算资源的计算框架,解决了短时长计算任务的计算框架饥饿的问题,应用本发明实施例可以在计算框架将短时长的计算任务运行完成后,将释放的计算资源会优先提供给该短时长的任务框架,而不会被长时长的计算任务占用。
[0121]在本发明实施例如果在缓存资源池中没有找到计算框架对应的亲和资源,那么还可以在缓存资源池中将低于预设阈值的亲和资源分配给计算框架,当然,高于预设阈值的亲和资源则不会被分配给计算框架,从而仍然保证了计算资源的能够优先分配给在先使用过的计算框架。
[0122]在本发明实施例如果在缓存资源池中没有找到计算框架低于预设阈值的亲和资源,那么还以在缓存资源池之外的其他地方查找是否存在非亲和的计算资源,若存在,则可以分配给计算框架,反之,若不存在,则可以拒绝计算框架申请计算资源的请求。
[0123]在本发明实施例在计算框架利用计算资源执行完计算任务后,还可以将该计算资源作为其亲和资源存入到缓存资源池中,并设置相应的初始的亲和度的值。此外,在本发明实施例中为了避免缓存资源池中亲和资源一直不能被其他的计算框架调用,还可以设定定时器定时减少亲和资源的亲和度的值,从而使得其低于预设阈值时,可以被其他的计算框架调用,当然,在不低于预设阈值时,可以设置为不能被其他的计算框架调用,当亲和资源的亲和度的值为0时,还可以将该亲和资源从缓存资源池中移除。
[0124]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0125]参照图7,示出了本发明的一种分布式系统任务调度的装置实施例的结构框图,所述分布式系统包括计算框架,所述计算框架用于执行计算任务的计算资源以及缓存资源池,所述缓存资源池中包括亲和资源,所述亲和资源为在先被计算框架用于执行计算任务的计算资源,所述的装置具体可以包括如下模块:
[0126]请求接收模块301,用于接收所述计算框架发送的资源请求;所述计算框架具有对应的框架标识;
[0127]第一判断模块302,用于判断在缓存资源池中是否存在与所述框架标识对应的亲和资源;若在缓存资源池中存在与所述框架标识对应的亲和资源,则调用第一资源分配模块;若在缓存资源池中不存在与所述框架标识对应的亲和资源,则调用第二判断模块;
[0128]第一资源分配模块303,用于将所述亲和资源分配给所述计算框架执行计算任务。
[0129]在本发明的一种优选实施例中,缓存资源池中的亲和资源可以具有对应的亲和度,所述的装置还可以包括如下模块:
[0130]第二判断模块,用于判断在所述缓存资源池中是否存在亲和度低于或等于第一预设阈值的亲和资源;若在所述缓存资源池中存在亲和度低于或等于第一预设阈值的亲和资源,则调用第二资源分配模块,若在所述缓存资源池中不存在亲和度低于或等于第一预设阈值的亲和资源,则调用第三判断模块;
[0131]第二资源分配模块,用于将所述亲和资源分配给所述计算框架执行计算任务。
[0132]在本发明的一种优选实施例中,所述的装置还可以包括如下模块:
[0133]第三判断模块,用于判断在所述缓存资源池之外的地方是否存在非亲和资源;若在所述缓存资源池之外的地方存在非亲和资源,则调用第三资源分配模块,若在所述缓存资源池之外的地方不存在非亲和资源,则调用请求拒绝模块;
[0134]第三资源分配模块,用于将所述非亲和资源分配给所述计算框架执行计算任务;
[0135]请求拒绝模块,用于拒绝所述计算框架发送的资源请求。
[0136]在本发明的一种优选实施例中,计算资源可以包括亲和资源和非亲和资源,所述的装置还可以包括如下模块:
[0137]亲和度设置模块,用于在所述计算框架执行完计算任务时,针对所述计算设置所述计算资源的初始的亲和度;
[0138]亲和资源存入模块,用于将所述具有初始的亲和度的计算资源作为所述计算框架的亲和资源,存入到所述缓存资源池中。
[0139]在本发明的一种优选实施例中,所述的装置还可以包括如下模块:
[0140]亲和度减少模块,用于按照预设周期减少所述缓存资源池中亲和资源的亲和度;
[0141]第四判断模块,用于判断所述亲和资源的亲和度是否低于或等于第二预设阈值;若所述亲和资源的亲和度低于或等于第二预设阈值,则调用亲和资源移除模块;
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1