一种渐进式非阻塞机会资源预留方法及系统技术方案

技术编号:20013972 阅读:39 留言:0更新日期:2019-01-05 22:19
本发明专利技术属于网络信息处理技术领域,公开了一种渐进式非阻塞机会资源预留方法及系统,采用预选节点(Preselection)和优选节点(Priority)相结合的形式,首先选出可以为大任务提供资源预留的节点,再引入Priority策略对过滤后的节点优先级排序,锁定某个节点为当前大任务的资源预留节点,最后采用机会资源分配策略对节点进行资源预留。本发明专利技术解决了被预留的节点直到出现满足预留请求之前都不再为其他任务分配资源,这将会导致集群产生大量的资源碎片,集群宕机也变成了一个大概率事件。

A Progressive Non-blocking Opportunity Resource Reservation Method and System

The invention belongs to the field of network information processing technology, and discloses a progressive non-blocking opportunity resource reservation method and system. The method combines Preselection with Priority. Firstly, the nodes that can provide resource reservation for large tasks are selected, and then the Priority strategy is introduced to prioritize the filtered nodes and lock a node to be the current big one. The resource reservation node of task is used. Finally, the resource reservation strategy is adopted to reserve the resource of the node. The invention solves the problem that the reserved nodes do not allocate resources for other tasks until the reserved requests are met, which will lead to a large number of resource fragments in the cluster, and the cluster outage will become a probable event.

【技术实现步骤摘要】
一种渐进式非阻塞机会资源预留方法及系统
本专利技术属于网络信息处理
,尤其涉及一种渐进式非阻塞机会资源预留方法及系统。
技术介绍
对于HadoopYARN资源调度系统,当某个节点不能满足任务需求时会进行资源预留。目前,业内常用的现有技术是这样的:增量资源预留和一次性资源预留。优先为这个应用程序预留一个节点上的资源,直到累计释放的空闲资源满足了应用的需求。这种资源的分配方式叫做增量资源分配。暂时放弃当前节点资源,直到某个节点的资源一次性满足应用程序的需求。这种分配方式叫做一次性资源分配。然而,两种分配方式均有不足,对于增量资源分配而言,资源预留机制会导致资源浪费,集群资源利用率低;而一次性资源分配虽然在发现资源无法满足某个应用需求的时候放弃资源请求,但是,这个应用有可能永远得不到自己请求的资源因而永远无法运行,即饿死现象;综上所述,现有技术存在的问题是:(1)目前的资源预留机制并未对选择哪个节点来执行资源预留做限制,预留节点的选择变得不可控,可能出现节点全部预留,导致集群宕机。(2)现有的资源预留机制并未对预留期间的资源进行充分利用,预留的节点直到出现满足预留请求之前都不再为其他任务分配资源,这将会导致集群产生大量的资源碎片,资源得不到充分利用。解决上述技术问题的难度和意义:在防止集群节点全部被预留,集群资源出现只释放不分配,导致集群宕机的情况上,需要通过制定相应的策略来选择出符合做资源预留的节点,对于策略是否符合选择最优节点,是需要做大量实验考证的。在对预留资源的利用问题上,本专利技术创新性的利用非阻塞式资源预留方式,这对于节点来说可以为其他应用提供资源服务,对于应用来说也可以去通过监听其他节点的形式及时的发现其他节点是否有满足请求的资源释放。在解决集群资源碎片问题和资源利用率问题上具有重大意义。
技术实现思路
针对现有技术存在的问题,本专利技术提供了一种渐进式非阻塞机会资源预留方法及系统。本专利技术将优化HadoopYarn中当某个节点不能满足任务需求时的资源预留方法,最终解决集群资源碎片过高,集群整体资源利用率过低问题,从而提高整体任务执行效率。本专利技术是这样实现的,一种渐进式非阻塞机会资源预留方法,采用预选节点Preselection和优选节点Priority相结合的形式;具体包括:当应用程序向HadoopYarn集群进行资源申请而得不到满足时,Yarn会对集群中某一节点进行资源预留:首先选出为大任务提供资源预留的节点:对集群所有节点按照Preselection策略过滤掉不能做资源预留的节点;其次引入Priority策略对过滤后的节点权值优先级排序,锁定某个节点为当前大任务的资源预留节点;最后采用非阻塞式资源预留算法结合机会资源分配策略对选中某个权值节点和最大的节点进行资源预留。进一步,Preselection策略包括:过滤掉平均资源利用率在大于1.0*0.8*N的节点作为资源预留节点;将满剩余足条件的节点作为Priority阶段的输入;具体包括:首先创建一个用于存放preselection预选结果的空数组Pre_node[];然后遍历所有节点,对于所有满足节点负载小于N*0.8*1.0的节点,都添加到Pre_node[]数组里面;最后将Pre_node[]数组里面的节点传入Priority阶段。进一步,Priority策略,采用mapReduce程序来计算集群中每个节点在所有Prioritypolicy下所体现的权值总和;以每个节点服务器的policy权值和来排序选择综合性能最合适的节点;进一步,PriorityPolicy最优策略的制定,包括:优先选择本地性节点:优先选择与任务在同一节点的资源;选择小任务多的节点:按照100%资源负载计算,对每个节点最大任务占用节点资源情况划分为4个等级:节点最大任务所用container占节点服务器总资源率小于20%,节点最大任务所用container占节点服务器总资源率达20%~40%,节点最大任务所用container占节点服务器总资源率达40%~60%,节点最大任务所用container占节点服务器总资源率超过60%;选择节点服务器资源占用量与节点服务器资源总量比值更小的节点:通过设置如下权值选择:节点服务器资源占用量/节点服务器资源总量<0.2,0.4>节点服务器资源占用量/节点服务器资源总量>0.2,0.6>节点服务器资源占用量/节点服务器资源总量>0.4,0.8>节点服务器资源占用量/节点服务器资源总量>0.6,节点服务器资源占用量/节点服务器资源总量>0.8。进一步,根据制定的PriorityPolicy最优策略统计每个节点的权值和,统计方式包括:首先先将每个节点的各个policy的权值写进文件file.txt;然后将file.txt作为Map程序的输入,按行以制表符切割,保留切割后数组下标为1到数组末尾的值;再以:切割得到输入数据;最后map的结果进入reduce程序进行处理,相同key的map结果进入同一个reduce,之后再将权值相加,得到处理数据;经过第三步Reduce程序的处理之后,node节点对应的权值数字,为经过制定的Prioritypolicy优选策略筛选之后的权值和,选择权值大的节点作为当前任务的资源预留节点;如果有权值相同的节点,按照节点心跳通信的先后来选。进一步,机会资源分配策略具体包括:1)应用采取非阻塞模式在某个节点进行资源预留,允许某个应用在某个节点进行资源预留期间监听其他服务器节点的资源变化,当发现其他某一节点因为某些原因结束掉运行在该节点上的某些应用而释放出满足该已经做资源预留的应用的资源请求时,允许该应用取消在该节点上的资源预留转向这个节点执行自身任务。具体包括:首先定义一个字典nodes用于存放所有节点信息,每个节点信息包括:name、res(节点资源总量)、remain_res(节点剩余资源量),其中name=pre表示Preselection阶段选择的节点,name=pri表示Priority阶段选中的资源预留节点;然后遍历整个字典,如果满足nodes[i][“name”]=pri则对这个节点进行资源预留,否则对这个节点进行监听。最后如果有某个name=pre的节点提前释放掉了自身资源,并且满足该已经做资源预留的应用的资源请求,那么首先释放掉预留资源,不再对pri节点进行资源预留;然后向该pre节点做资源请求。2)机会资源的利用,允许被预留的资源在一定的条件下为其他应用提供服务;具体包括:定义1预留container:某个节点是被预留的节点,那么它将产生一个预留container,该container的容量是预留任务所需要的资源量,该节点资源释放之后,将资源往预留container里面填充。当这个预留container填满之后便将这个container返回给预留任务。定义2机会资源(opp.resource):某个被预留的节点在逐渐释放资源的来填充预留container时,将未填满container之前的资源都称之为机会资源。由于资源的分配也需要时间,当机会资源达到所需预留contain本文档来自技高网
...

【技术保护点】
1.一种渐进式非阻塞机会资源预留方法,其特征在于,所述渐进式非阻塞机会资源预留方法采用预选节点Preselection和优选节点Priority相结合的形式先选择预留节点,再通过机会资源分配策略对选中节点进行资源预留;具体包括:当应用程序向Hadoop Yarn集群进行资源申请而得不到满足时,Yarn对集群中某一节点进行资源预留:首先选出为大任务提供资源预留的节点:对集群所有节点按照Preselection策略过滤掉不能做资源预留的节点;其次引入Priority策略对过滤后的节点权值优先级排序,锁定某个节点为当前大任务的资源预留节点;最后采用非阻塞式资源预留算法结合机会资源分配策略对选中某个权值节点和最大的节点进行资源预留。

【技术特征摘要】
1.一种渐进式非阻塞机会资源预留方法,其特征在于,所述渐进式非阻塞机会资源预留方法采用预选节点Preselection和优选节点Priority相结合的形式先选择预留节点,再通过机会资源分配策略对选中节点进行资源预留;具体包括:当应用程序向HadoopYarn集群进行资源申请而得不到满足时,Yarn对集群中某一节点进行资源预留:首先选出为大任务提供资源预留的节点:对集群所有节点按照Preselection策略过滤掉不能做资源预留的节点;其次引入Priority策略对过滤后的节点权值优先级排序,锁定某个节点为当前大任务的资源预留节点;最后采用非阻塞式资源预留算法结合机会资源分配策略对选中某个权值节点和最大的节点进行资源预留。2.如权利要求1所述的渐进式非阻塞机会资源预留方法,其特征在于,Preselection策略包括:过滤掉平均资源利用率在大于1.0*0.8*N的节点作为资源预留节点;将满剩余足条件的节点作为Priority阶段的输入;具体包括:首先创建一个用于存放preselection预选结果的空数组Pre_node[];然后遍历所有节点,对于所有满足节点负载小于N*0.8*1.0的节点,都添加到Pre_node[]数组里面;最后将Pre_node[]数组里面的节点传入Priority阶段。3.如权利要求1所述的渐进式非阻塞机会资源预留方法,其特征在于,Priority策略包括:采用mapReduce程序来计算集群中preselection阶段节点在所有Prioritypolicy下所体现的权值总和;以每个节点服务器的policy权值和来排序选择综合性能最合适的节点。4.如权利要求3所述的渐进式非阻塞机会资源预留方法,其特征在于,PriorityPolicy最优策略的制定,包括:优先选择本地性节点:优先选择与任务在同一节点的资源;选择小任务多的节点:按照100%资源负载计算,对每个节点最大任务占用节点资源情况划分为4个等级:节点最大任务所用container占节点服务器总资源率小于20%,节点最大任务所用container占节点服务器总资源率达20%~40%,节点最大任务所用container占节点服务器总资源率达40%~60%,节点最大任务所用container占节点服务器总资源率超过60%;选择节点服务器资源占用量与节点服务器资源总量比值更小的节点:通过设置如下权值选择:节点服务器资源占用量/节点服务器资源总量<0.2,0.4>节点服务器资源占用量/节点服务器资源总量>0.2,0.6>节点服务器资源占用量/节点服务器资源总量>0.4,0.8>节点服务器资源占用量/节点服务器资源总量>0.6,节点服务器资源占用量/节点服务器资源总量>0.8。5.如权利要求3所述的渐进式非阻塞机会资源预留方法,其特征在于,根据制定的PriorityPolicy最优策略统计每个节点的权值和,统计方式包括:首先先将每个节点的各个policy的权值写进文件file.txt;然后将file.txt作为Map程序的输入,按行以制表符“\t”切割,保留切割后数组下标为1到数组末尾的值;再以“:”切割得到输入数据;最后map的结果进入reduce程序进行处理,...

【专利技术属性】
技术研发人员:张路桥滕彩峰李飞王娟石磊
申请(专利权)人:成都信息工程大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1