基于Yarn框架的资源共享控制系统的制作方法
【专利摘要】本发明提供一种基于Yarn框架的资源共享控制系统,该控制系统包括:客户端、资源管理模块、至少一个应用管理模块和资源调度模块;其中,所述资源管理模块可根据所述客户端发送的第一任务请求,启动对应于所述任务标识的应用管理模块,并向所述应用管理模块发送所述第一任务请求;所述应用管理模块用于根据所述资源需求信息向所述资源调度模块申请运行所述第一任务所需的可用资源;所述资源调度模块用于向所述第一任务提供所述可用资源,所述可用资源与共享资源中的其他资源具有隔离性。通过本发明提供的资源共享的控制方法和系统,可优化任务对共享资源的使用,避免任务之间出现的资源竞争及性能干扰。
【专利说明】基于Yarn框架的资源共享控制系统
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种基于Yarn框架的资源共享控制系统。【背景技术】
[0002]云计算发展以来,集群的规模不断扩大,集群种类也不断增多。如常见的面向并行编程技术(该并行编程技术即为MapReduce,是谷歌于2004年提出的应用于大规模集群进行大规模数据处理的并行计算模型)任务的分布式计算Hadoop (Apache软件基金会所研发的开放源码并行运算编程工具和分散式档案系统)集群和面向VM (Virtual Machine,虚拟机)任务的IaaS (Infrastructure as a Service,基础设施即服务)集群等。其中,各个任务运行时所基于的物理设备、通信环境大致相同,例如一台计算机设备即可作为Hadoop集群中的一个节点运行MapReduce任务,也可作为IaaS集群中的一个节点运行VM任务;理想的,为了节约部署集群的资源成本,可使多种任务共享同一个资源,例如在同一组物理设备上部署面向不同任务的多个集群;但在实际应用中,由于不同集群所面向的任务的属性不同,因此,使多种任务共享同一个资源后,集群的工作性能出现严重下滑。举例来说,MapReduce任务是一种强调处理数据吞吐量的离线批处理任务,VM任务是一种强调任务执行性能、任务低延迟的在线服务任务。即MapReduce任务与VM任务为两种异构任务;为了避免异构任务间的性能干扰与资源竞争,通常是将上述两种任务隔离部署,即在同一时间段内,系统中同一个节点不可既运行VM任务也运行MapReduce任务的情况;因此,集群中的资源利用率较低,且资源的空闲浪费尤其严重。
[0003]针对上述资源浪费的现象,在现有技术中,在共享资源中同时部署Hadoop和IaaS集群。但由于每种任务对其他任务的不可知,容易造成不同任务对同一资源的竞争,从而造成了任务运行性能的下降。
【发明内容】
[0004]本发明提供一种基于Yarn框架的资源共享控制系统,用于优化任务对共享资源的使用,避免任务之间出现的资源竞争及性能干扰。
[0005]本发明提供一种基于Yarn框架的资源共享控制系统,包括:
[0006]客户端、资源管理模块、至少一个应用管理模块和资源调度模块;
[0007]其中,所述资源管理模块用于接收所述客户端发送的第一任务请求,所述任务请求包括任务标识和任务的资源需求信息;根据所述任务标识,在至少一个应用管理模块中启动对应于所述任务标识的应用管理模块,并向所述应用管理模块发送所述第一任务请求;
[0008]所述应用管理模块用于根据所述资源需求信息向所述资源调度模块申请运行所述第一任务所需的可用资源;
[0009]所述资源调度模块用于向所述第一任务提供所述可用资源,所述可用资源与共享资源中的其他资源具有隔离性。[0010]本发明提供的资源共享的控制方法和系统,使任务获取运行所需的可用资源时,需通过资源管理模块启动相应的应用管理模块,并由该应用管理模块向资源调度模块申请资源以获得任务所需的可用资源,从而使各个任务获取的可用资源是由资源共享的控制系统所分派的,因此避免了任务运行时出现的资源竞争,且资源调度模块提供的可用资源与共享资源中的其他资源具有隔离性,从而各个任务仅使用各自的可用资源,避免了任务之间的性能干扰。
【专利附图】
【附图说明】
[0011]图1为本发明基于Yarn框架的资源共享控制系统实施例一的结构图;
[0012]图2为本发明基于Yarn框架的资源共享控制系统实施例二的结构图;
[0013]图3为本发明基于Yarn框架的资源共享控制方法实施例一的流程图;
[0014]图4为本发明基于Yarn框架的资源共享控制方法实施例二的流程图;
[0015]图5为本发明基于Yarn框架的资源共享控制方法实施例三的流程图。
【具体实施方式】
[0016]图1为本发明基于Yarn框架的资源共享控制系统实施例一的结构图。如图1所述,该控制系统是基于Yarn框架搭建的,Yarn框架为Apache软件基金会所提供,属于Hadoop下的一种系统,具有对多集群所共享的全部资源进行全局调控的资源管理模块(Resource Manager)和管理各个任务的应用管理模块(Application Master);另外,需要说明的是,在现有技术中Yarn框架不支持VM任务,因此,本实施例所基于的Yarn框架是扩展后可支持VM任务的Yarn框架,则该控制系统包括:
[0017]客户端11、资源管理模块12、至少一个应用管理模块13和资源调度模块14 ;
[0018]资源管理模块12用于接收客户端11发送的第一任务请求,该任务请求包括任务标识和任务的资源需求信息,及第一任务的执行文件;该任务标识包含任务类型;而任务类型可以为虚拟机VM任务类型或并行编程技术(MapReduce)任务类型;根据任务标识,在至少一个应用管理模块中启动对应于任务标识的应用管理模块13,并向该应用管理模块13发送第一任务请求;
[0019]应用管理模块13用于根据资源需求信息,向资源调度模块44申请运行第一任务所需的可用资源;
[0020]资源调度模块14用于向第一任务提供任务运行所需的可用资源;可用资源与共享资源中的其他资源具有隔离性。
[0021]在本实施例中,任务获取运行所需的可用资源时,需通过资源管理模块启动相应的应用管理模块,并由该应用管理模块向资源调度模块申请资源以获得任务所需的可用资源,各个任务获取的可用资源是由资源共享的控制系统所分派的,因此避免了任务运行时出现的资源竞争,且资源调度模块提供的可用资源与共享资源中的其他资源具有隔离性,从而各个任务仅使用各自的可用资源,避免了任务之间的性能干扰。
[0022]图2为本发明基于Yarn框架的资源共享控制系统实施例二的结构图。如图2所述,本实施例实在图5所示的实施例一的基础上,进一步描述该资源共享的控制系统,在该控制系统中,应用管理模块13具体用于根据资源需求信息,向资源调度模块14发送资源分配请求,该资源分配请求包括任务标识和资源需求信息;
[0023]则资源调度模块14具体用于根据资源分配请求在共享资源中确定可用节点,并采用隔离策略在可用节点内隔离出匹配于资源需求信息的可用资源;
[0024]资源调度模块14具体用于向应用管理模块13发送可用节点的标识和可用节点内的可用资源的信息;
[0025]应用管理模块13具体用于根据可用节点的标识和可用节点内的可用资源的信息,使用可用资源运行第一任务。
[0026]上述资源调度模块14在共享资源中确定可用节点的具体过程为:资源调度模块
14具体用于根据任务标识,采用对应的随机算法,在共享资源中确定第一节点,并获取第一节点的资源占用信息;
[0027]资源调度模块14具体用于根据第一节点的资源占用信息,判断第一节点是否可提供匹配于资源需求信息的可用资源;
[0028]若是,则资源调度模块14具体用于确定第一节点作为可用节点;
[0029]若否,则资源调度模块14具体用于再次确定第一节点,并返回执行所述根据第一节点的资源占用信息,判断第一节点是否可提供匹配于资源需求信息的可用资源。
[0030]进一步的,上述控制系统还包括:
[0031]自适应模块15,该自适应模块15可被所述应用管理模块13触发;
[0032]自适应模块15用于获取第一任务的当前运行信息;
[0033]自适应模块15用于根据第一任务的当前运行信息,若判断第一任务运行异常,则针对第一任务调整可用资源。
[0034]具体的,自适应模块15判断第一任务运行异常的过程为:自适应模块15具体用于将第一任务的当前运行信息与至少一个第二任务的当前运行信息比较,若判断第一任务处于横向异常状态,
[0035]则比较第一任务的当前运行信息与第一任务的历史运行信息;若判断第一任务处于纵向异常状态,则采用第一方案调整可用资源;
[0036]若判断第一任务未处于纵向异常状态且持续处于横向异常状态,则采用第二方案调整可用资源;
[0037]其中第一任务与第二任务为相同类型的任务;另外,上述第一方案为将运行异常的任务由所在的当前可用节点迁移至调整可用节点,以使任务基于调整节点上的可用资源被运行;
[0038]上述第二方案为将当前可用节点上的当前可用资源进行扩充,以使任务基于扩充后的可用资源被运行。
[0039]进一步的,在应用管理模块13可在任务运行的过程中,对任务进行管理操作,例如上述第一任务基于可用资源在运行的过程中,应用管理模块13还用于接收客户端11发送的第一任务查看请求或第一任务停止请求;
[0040]则应用管理模块13还用于根据第一任务查看请求获取第一任务的运行状态,并向客户端11发送第一任务的运行状态;
[0041]或者,应用管理模块13还用于根据第一任务停止请求停止第一任务。
[0042]需要补充说明的是,基于Yarn框架的资源共享控制系统中的各个模块之间可以基于RPC (Remote Procedure Call Protocol,远程调用协议)通信协议进行通信,例如上述资源管理模块接收客户端发送的任务请求,便是基于RPC通信协议实现的。
[0043]本实施例中,通过资源管理模块启动相应的应用管理模块,并由该应用管理模块向资源调度模块申请资源以获得任务所需的可用资源,使得各个任务获取的可用资源是由资源共享的控制系统所分派的,避免了任务运行时出现的资源竞争,且资源调度模块提供的可用资源与共享资源中的其他资源具有隔离性,从而各个任务仅使用各自的可用资源,避免了任务之间的性能干扰,并且自适应模块可根据任务的当前运行信息,对任务当前的可用资源进行调整,使任务保持较佳的运行性能,从而提高了面向该任务的集群的工作性倉泛。
[0044]需要说明的是,前述各个装置实施例中的各个模块用于对应的实施下述各个方法实施例中的各个步骤,具体的技术方案、实施细节及技术效果在下述各个方法实施例中进行详细说明,在此不再赘述。
[0045]图3为本发明基于Yarn框架的资源共享控制方法实施例一的流程图。如图3所示,本实施例的控制方法应用在资源共享的控制系统中,则上述各模块对应的执行下述资源共享控制方法中的各步骤,该资源共享的控制方法包括:
[0046]S101、资源管理模块接收客户端发送的第一任务请求。
[0047]若当前资源共享的控制系统支持多种任务共享资源,则基于Yarn框架的资源共享控制系统在向任务提供资源时,需确定该任务的种类,则上述任务请求包括任务标识和任务的资源需求信息,及第一任务的执行文件,其中任务标识和任务的资源需求信息可以是用户通过客户端向资源管理模块提交的,以使资源管理模块可以根据上述任务标识判断该任务的类别,并获知该任务所需的资源。
[0048]S102、资源管理模块根据任务标识,在至少一个应用管理模块中启动对应于任务标识的应用管理模块。
[0049]在资源共享的控制系统中存在至少一个应用管理模块,各应用管理模块对应地管理着不同种类的任务,为这些任务申请资源、并运行任务等;举例来说,现有的Yarn框架不支持VM任务,但经过对Yarn框架的扩展,可基于Yarn框架支持VM任务及MapReduce任务,则上述第一任务请求即为VM任务请求或MapReduce任务请求;相应的,上述任务标识包含任务类型,而任务类型为虚拟机VM任务或MapReduce任务,则资源管理模块根据任务请求中代表VM任务的任务标识或代表MapReduce任务的任务标识,启动对应于任务标识的应用管理模块,例如当第一任务的任务标识代表VM任务,则根据任务标识,启动对应于VM任务的应用管理模块;并向该应用管理模块发送第一任务请求。
[0050]S103、应用管理模块根据资源需求信息,使资源调度模块向第一任务提供任务运行所需的可用资源。
[0051]具体的,应用管理模块根据资源需求信息向资源调度模块申请运行第一任务所需的可用资源;
[0052]S104、资源调度模块向第一任务提供可用资源。
[0053]上述资源调度模块提供的可用资源为资源调度模块管理的全部共享资源中的部分资源,即资源调度模块在共享资源中调用一部分资源,作为运行第一任务的可用资源;该可用资源与共享资源中的其他资源具有隔离性,随后应用管理模块便可根据第一任务的执行文件,在可用资源上运行该第一任务。
[0054]具体来说,上述资源需求信息可告知应用管理模块运行该任务所需的资源具体可以为CPU的数量、内存的大小等信息;则应用管理模块会根据资源需求信息,向资源调度模块申请匹配于该资源需求信息的可用资源,则资源调度模块按照隔离策略向上述第一任务提供可用资源,则该可用资源与共享资源中的其他资源具有隔离性;其中隔离策略用于限制任务仅使用提供给该任务的资源,例如,在扩展后的Yarn框架中,将可用资源以封装的容器提供给第一任务,则该第一任务仅可以使用该容器作为运行环境,保证了第一任务在共享资源中所使用的可用资源与其他任务在共享资源中所使用的其他资源隔离,避免了任务之间的性能干扰而影响任务的运行。
[0055]在本实施例中,任务获取运行所需的可用资源时,需通过资源管理模块启动相应的应用管理模块,并由该应用管理模块向资源调度模块申请资源以获得任务所需的可用资源,即各个任务获取的可用资源是由资源共享的控制系统所分派的,避免了任务运行时出现的资源竞争,且资源调度模块提供的可用资源与共享资源中的其他资源具有隔离性,从而各个任务仅使用各自的可用资源,避免了任务之间的性能干扰。
[0056]图4为本发明基于Yarn框架的资源共享控制方法实施例二的流程图。如图4所示,本实施例是在图3所示的实施例的基础上,进一步详细描述资源共享的控制方法,该方法包括:
[0057]S201、管理设备部署资源共享的控制系统。
[0058]由于本实施例的资源共享的控制方法是基于Yarn框架的资源共享的控制系统实施的,因此首先需要管理设备在可使用的资源上部署该资源共享的控制系统。其中可使用的资源包括物理设备,如计算机设备、通信环境等。搭建该资源共享的控制系统时,可根据当前需要支持的任务搭建系统,也可在已有的框架上进行扩展,以便搭建该控制系统,其中,该控制系统至少包括客户端、资源管理模块、至少一个应用管理模块、资源调度模块。另外由于在本实施例中以VM任务举例,则控制系统中还包括VM的访问接口。
[0059]进一步的,以支持的任务为VM任务和MapReduce任务为例,由于Yarn框架目前仅支持MapReduce任务,则当资源共享的控制系统基于Yarn框架支持MapReduce任务与VM任务时,则需根据VM任务运行特点,编写对应于VM任务的新增应用管理模块,并将该新增应用管理模块注册到资源管理模块中;从而扩展后的Yarn框架接收到用户提交的MapReduce任务或VM任务后,资源管理模块可启动相应的应用管理模块,使其负责管理相应的任务。
[0060]在扩展Yarn框架时,具体可采用编程语言在现有的Yarn框架内编写客户端和支持VM任务的应用管理模块,其中,客户端用于向资源管理模块提交任务请求,该任务请求可以为VM任务请求或MapReduce任务请求,且用户还可以通过客户端查询任务的运行状态或停止任务等;相应的,新增的针对VM任务的应用管理模块可以为其所管理的任务申请资源、及运行任务等;另外,在现有的Yarn框架中,资源调度模块在向各个任务分配资源时,仅考虑了 MapReduce任务的特性;因此,在扩展Yarn框架时具体还包括对资源调度模块的扩展,使该资源调度模块可面向VM任务分配资源。
[0061]另外在Yarn框架时还需部署虚拟机及VM的访问接口,其中部署虚拟机的方法与现有技术类似,在此不再赘述。
[0062]当对Yarn框架扩展完成后,便可基于该扩展后的Yarn框架部署资源共享的控制系统。
[0063]S202、资源管理模块接收客户端发送的第一任务请求;
[0064]S203、资源管理模块根据任务标识,在至少一个应用管理模块中启动对应于任务标识的应用管理模块。
[0065]上述S202与S203可参照上述SlOl?S102,在此不再赘述。
[0066]S204、应用管理模块根据资源需求信息,向资源调度模块发送资源分配请求。
[0067]其中资源分配请求包括任务标识和资源需求信息。
[0068]S205、资源调度模块根据资源分配请求在共享资源中确定可用节点,并采用隔离策略在可用节点内隔离出匹配于资源需求信息的可用资源。
[0069]具体的,资源调度模块根据资源分配请求在共享资源中确定可用节点,具体包括如下步骤:
[0070]Al、资源调度模块根据任务标识,采用对应的随机算法,在共享资源中确定第一节点,并获取第一节点的资源占用信息;
[0071]举例来说,资源调度模块根据任务标识可获知该任务为VM任务或MapReduce任务,则根据不同任务的不同特性,采用对应的随机算法,确定出第一节点;由于资源调度模块是根据不同任务的不同特性而采用对应的随机算法,则确定出的可用节点具有随机性,从而各节点面向VM任务或MapReduce任务的负载可保持均衡;另外,通常集群中各个节点上都设有节点管理器,各节点管理器可向资源调度模块上报各个节点的当前的资源使用信息,也可以理解为上报各个节点的当前资源的被占用信息及资源的空闲信息。
[0072]A2、资源调度模块根据第一节点的资源占用信息,判断第一节点是否可提供匹配于资源需求信息的可用资源;若是,则资源调度模块确定第一节点作为可用节点;若否,则资源调度模块再次确定第一节点,并返回执行所述根据第一节点的资源占用信息,判断第一节点是否可提供匹配于资源需求信息的可用资源。
[0073]举例来说,当第一节点的标识为0010时,且该第一节点的资源占用信息显示该节点的资源,例如CPU资源、内存资源已被全部或部分占用,不能提供匹配于上述资源需求信息的可用资源,则可按照节点标识依次查询标识为0011的节点,即再次确定第一节点,并返回执行上述根据第一节点的资源占用信息,判断第一节点是否可提供匹配于资源需求信息的可用资源。
[0074]当确定可用节点后,则资源调度模块采用隔离策略在可用节点内隔离出匹配于资源需求信息的可用资源;具体的,在扩展的Yarn框架中,资源调度模块采用隔离策略具体为采用cgroup (control groups)机制在可用节点中创建容器,即将可用节点中的可用资源以封装的容器分派至需要资源的任务,以实现属于不同任务的可用资源之间的隔离。
[0075]S206、资源调度模块向应用管理模块发送可用节点的标识和可用节点内的可用资源的信息。
[0076]资源调度模块通过可用节点的标识和可用节点内的可用资源的信息,告知应用管理模块该第一任务具体可使用的可用节点及可在该节点上使用的可用资源,具体的可用资源的信息如CPU资源的数量、内存资源的信息等。
[0077]S207、应用管理模块根据可用节点的标识和可用节点内的可用资源的信息,使用可用资源运行第一任务。[0078]由于应用管理模块管理该第一任务使用可用资源以运行,则第一任务不会与其他任务之间出现资源竞争。
[0079]另外,在任务的运行期间,应用管理模块还可以接收客户端发送的第一任务查看请求或第一任务停止请求;则对应的,应用管理模块根据第一任务查看请求,通过资源调度模块获取第一任务的运行状态,并向客户端发送第一任务的运行状态,以供用户查看第一任务的运行状态;或者,应用管理模块根据第一任务停止请求,通过资源调度模块停止第一任务。
[0080]在本实施例中,任务获取运行所需的可用资源时,需通过资源管理模块启动相应的应用管理模块,并由该应用管理模块向资源调度模块申请资源以获得任务所需的可用资源,各个任务获取的可用资源是由资源共享的控制系统所分派的,因此避免了任务运行时出现的资源竞争,且资源调度模块提供的可用资源与共享资源中的其他资源具有隔离性,从而各个任务仅使用各自的可用资源,避免了任务之间的性能干扰。
[0081]图5为本发明基于Yarn框架的资源共享控制方法实施例三的流程图。如图5所示,本实施例实在图4所示的实施例的基础上,进一步优化了资源共享的控制方法,该方法包括:
[0082]S301、自适应模块获取第一任务的当前运行信息。
[0083]为了完善资源共享的控制方法,上述资源共享的控制系统还包括自适应模块,该自适应模块在应用管理模块使用由上述S207得到的可用资源运行任务后,可以监控该任务基于当前可用资源的运行情况,当自适应模块根据第一任务的当前运行信息,判断该第一任务运行异常,则针对该第一任务调整当前可用资源,则第一任务使用调整后的可用资源继续运行,以保证该第一任务的运行性能。
[0084]其中,自适应模块可通过第一任务当前所使用的可用节点的系统内核,获取包括指令执行周期(cycles-per-1nstruction, CPI)、内存(Memory)缺页中断(page fault)、I/0(input/output,输入输出端口)请求响应时间等第一任务的当前运行信息;其中指令执行周期用以判断任务CPU资源的使用情况,Memory缺页中断用来判断任务内存资源的使用情况,而I/O请求响应时间用来判断任务对I/O的使用情况。
[0085]可以理解的是,本实施例为了便于说明自适应模块的功能,仅以第一任务举例,但在实际应用中,自适应模块可以监管集群中的所有任务。
[0086]S302、自适应模块判断第一任务是否处于横向异常状态;若是,执行S303 ;若否,执行S308。
[0087]具体的,自适应模块将第一任务的当前运行信息与至少一个第二任务的当前运行信息比较,若判断第一任务处于横向异常状态,则执行S303,若否,则继续运行,即执行S308 ;其中第一任务与第二任务为相同类型的任务。举例来说,第一任务为VM任务1,自适应模块获知VM任务I的当前I/O请求响应时间为10秒,而其他作为第二任务的VM任务2至VM任务10的当前I/O请求响应时间皆不超过4秒,则说明VM任务I处于横向异常状态;即第一任务的当前运行信息与至少一个第二任务的当前运行信息的最小差异值大于预设的阈值,则判定该第一任务处于横向异常状态。
[0088]S303、自适应模块判断第一任务是否处于纵向异常状态;若是,执行S304 ;若否,执行S305。[0089]具体的,自适应性模块比较第一任务的当前运行信息与第一任务的历史运行信息;若判断第一任务处于纵向异常状态,执行S304 ;若否,执行S305 ;在此仍以I/O请求响应时间为例,VM任务I在当前时间Tl的I/O请求响应时间为10秒,在当前时间之前,如T2、T3、T4等时间,VM任务I的I/O请求响应时间皆不超过5秒,则说明VM任务I处于纵向异常状态;即第一任务的当前运行信息与第一任务的历史运行信息的最小差异值大于预设的阈值,则判定该第一任务处于纵向异常状态。
[0090]S304、自适应模块采用第一方案调整当前可用资源。
[0091]上述第一方案为将运行异常的任务由所在的当前可用节点迁移至调整可用节点,以使任务基于调整节点上的可用资源运行。当第一任务在可用节点I上运行时发生异常,可将可用节点2作为调整可用节点,则第一任务可迁移至在调整可用节点上继续运行。其中调整可用节点的确定可参考上述S205。
[0092]S305、自适应模块判断第一任务是否持续处于横向异常状态;若是,执行S306 ;若否,执行S308。
[0093]自适应模块继续将第一任务的当前运行信息与至少一个第二任务的当前运行信息比较,以判断第一任务是否持续处于横向异常状态。需要说明的是,S305中所述的“当前运行信息”为自适应模块持续监控第一任务的时间段内处于任意时间上的运行信息。
[0094]S306、自适应模块采用第二方案调整当前可用资源。
[0095]上述第二方案为将当前可用节点上的当前可用资源进行扩充,以使第一任务基于扩充后的可用资源被运行,即第一任务当前所在的节点I所提供的可用资源不能满足第一任务的需求,则可参照S205,资源调度模块在节点I上重新创建包括较大可用资源的容器,并将扩充后的可用资源分配给第一任务,使第一任务保持较佳的运行性能。
[0096]上述自适应模块采用第一方案或第二方案为任务调整可用资源时,具体的,自适应模块可以触发客户端,使客户端再次提交任务请求;自适应模块在触发客户端的同时,也告知客户端该任务真正所需的资源的数量及调整方案;例如,自适应模块确定第一任务的指令执行周期超出正常值的20% ;则可以确定该任务真正所需的CPU资源数量需比该任务当前使用的CPU数量多20%,则客户端再次提交的任务请求中,资源需求信息中的CPU资源数量会比前次任务请求中的CPU资源数量多20%。
[0097]S307、应用管理模块继续基于调整后的可用资源,运行第一任务。
[0098]执行上述S304或S306后得到的可用资源即为调整后的可用资源,基于该调整后的可用资源运行第一任务,可使第一任务维持较佳的运行性能。
[0099]S308、应用管理模块继续基于当前可用节点上的可用资源,运行第一任务。
[0100]本实施例中,由于任务基于可用资源在运行的过程中,随着任务的运行,当前的可用资源会不满足任务的需求,而在本实施例中由于自适应模块可根据任务的当前运行信息,对任务当前的可用资源进行调整,使任务保持较佳的运行性能,从而提高了面向该任务的集群的工作性能。
[0101]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。[0102]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种基于Yarn框架的资源共享控制系统,其特征在于,所述控制系统包括:客户端、资源管理模块、至少一个应用管理模块和资源调度模块; 其中,所述资源管理模块用于接收所述客户端发送的第一任务请求,所述任务请求包括任务标识和任务的资源需求信息;根据所述任务标识,在至少一个应用管理模块中启动对应于所述任务标识的应用管理模块,并向所述应用管理模块发送所述第一任务请求; 所述应用管理模块用于根据所述资源需求信息向所述资源调度模块申请运行所述第一任务所需的可用资源; 所述资源调度模块用于向所述第一任务提供所述可用资源,所述可用资源与共享资源中的其他资源具有隔离性。
2.根据权利要求1所述的控制系统,其特征在于,任务标识包含任务类型;所述任务类型为虚拟机VM任务类型或并行编程技术任务类型。
3.根据权利要求2所述的控制系统,其特征在于,所述应用管理模块具体用于根据所述资源需求信息,向所述资源调度模块发送资源分配请求,所述资源分配请求包括所述任务标识和所述资源需求信息; 所述资源调度模块具体用于根据所述资源分配请求在共享资源中确定可用节点,并采用隔离策略在所述可用节点内隔离出匹配于所述资源需求信息的可用资源;向所述应用管理模块发送所述可用节点的标识和所述可用节点内的可用资源的信息; 所述应用管理模块具体用于根据所述可用节点的标识和所述可用节点内的可用资源的信息,使用所述可用资源运行所 述第一任务。
4.根据权利要求3所述的控制系统,其特征在于,所述资源调度模块具体用于根据所述任务标识,采用对应的随机算法,在所述共享资源中确定第一节点,并获取所述第一节点的资源占用信息;根据所述第一节点的资源占用信息,判断所述第一节点是否可提供匹配于所述资源需求信息的可用资源; 若是,则确定所述第一节点作为可用节点; 若否,则确定新的第一节点,并返回执行所述根据所述第一节点的资源占用信息,判断所述第一节点是否可提供匹配于所述资源需求信息的可用资源。
5.根据权利要求1~4任一项所述的控制系统,其特征在于,所述控制系统还包括自适应模块; 所述自适应模块用于获取所述第一任务的当前运行信息;根据所述第一任务的当前运行信息,若判断所述第一任务运行异常,则针对所述第一任务调整所述可用资源。
6.根据权利要求5所述的控制系统,其特征在于,所述自适应模块具体用于将所述第一任务的当前运行信息与至少一个第二任务的当前运行信息比较,若判断所述第一任务处于横向异常状态, 则比较所述第一任务的当前运行信息与所述第一任务的历史运行信息;若判断所述第一任务处于纵向异常状态,则采用第一方案调整所述可用资源; 若判断所述第一任务未处于纵向异常状态且持续处于横向异常状态,则采用第二方案调整所述可用资源; 其中所述第一任务与所述第二任务为相同类型的任务。
7.根据权利要求6所述的控制系统,其特征在于,所述第一方案为将运行异常的任务由所在的当前可用节点迁移至调整可用节点,以使所述任务基于所述调整可用节点上的可用资源被运行; 所述第二方案为将当前可用节点上的当前可用资源进行扩充,以使所述任务基于扩充后的可用资源被运行。
8.根据权利要求1~4任一项所述的控制系统,其特征在于, 所述应用管理模块还用于接收客户端发送的第一任务查看请求或第一任务停止请求; 根据所述第一任务查看请求获取所述第一任务的运行状态,并向所述客户端发送所述第一任务的运行状态; 或者,根据所述第一任务 停止请求停止所述第一任务。
【文档编号】G06F9/50GK103593242SQ201310482150
【公开日】2014年2月19日 申请日期:2013年10月15日 优先权日:2013年10月15日
【发明者】胡春明, 王文峰, 杨任宇, 康俊彬 申请人:北京航空航天大学