面向分布式编程框架的资源管理系统技术方案

技术编号:8190880 阅读:281 留言:0更新日期:2013-01-10 01:47
本发明专利技术涉及一种面向分布式编程框架的资源管理系统。该面向分布式编程框架的资源管理系统包括主部分和从部分,从部分用于启动编程框架执行器,监控编程框架执行器的运行状态,向主部分报告该从部分的资源使用信息和该从部分上编程框架执行器的资源使用信息;主部分包括:收集器,用于接收并保存从部分的资源使用信息和从部分上编程框架执行器的资源使用信息,保存集群资源信息,收集器中包括监控器,用于监控从部分上编程框架执行器的资源使用信息,根据编程框架定制的资源调整决策触发器向调度器发送为编程框架增加或减少资源的任务;调度器,用于调度、下发和控制监控器发送的任务。本发明专利技术具有良好的兼容性与灵活性。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种面向分布式编程框架的资源管理系统
技术介绍
并行计算依赖于大规模的集群,并行计算的火热推动了集群管理系统的发展,面向并行计算的集群管理系统开始出现,比如LSF (Load Sharing Facility,负载共享设施)系统、PBS (Protable Batch System,可移植批处理作业系统)系统等。这些系统都是面向并行计算,处理传统的批处理作业,管理集群资源,广泛应用于工业生产和科研环境中。随着分布式计算的兴起,各种新型并行编程框架的不断涌现,传统的集群管理系统因其本身系统设计与结构等方面的原因,无法良好的支持新型编程框架,更无法支持多编程框架共存于集群中的资源管理问题。面向多编程框架的集群资源管理是最近才出现的研究课题。下面列举3个有代表性的可支持多编程框架的集群资源管理系统 I)计算密集型批处理作业管理系统CondorCondor是威斯康辛大学开发的处理计算密集型作业的批处理系统。它的架构为典型的主-从(master-slave)结构,Condor的master主要由收集器(collector)和导航器(negotiator)组成,开启器(startd)是每个执行机器上都有的守护进程,相当于从部分,开启器负责启动任务,并定时上报机器的资源信息给收集器。开启器是每个提交作业的机器上都存在的调度器进程,负责接收用户作业,将任务匹配请求发送给收集器。导航器完成作业资源请求与机器的匹配工作,从而将作业分发给合适的机器,由开启器启动任务。对于编程框架的支持,Condor实现了一套管理_工作者(master-worker)结构的框架,简称为MW框架。MW框架提供了一些基类,通过继承这三个基类,用户可以编写自己的框架。Condor支持编程框架的本质是提供了一套开发编程框架的API (ApplicationProgramming Interface,应用程序编程接口),用户通过这套API可以开发出一个编程框架,因此Condor要支持已有的编程框架非常麻烦。资源虚拟化方面,Condor本身并没有对任何的资源虚拟化方案管理资源,因此多个框架之间会产生资源竞争,互相影响。总体而言,Condor在兼容现有的编程框架上存在困难,并且没有提供任何虚拟化的技术,使得多编程框架共享集群存在困难。2)动态资源管理系统MesosMesos是Berkeley大学实现的数据中心资源共享管理平台,负责为上层计算框架分配资源。Mesos的本质思想是集群复用。相比于传统的资源管理系统,Mesos从不同的资源视角对集群资源管理进行了抽象。Mesos通过与框架的调度器的通信完成资源分配的交互。编程框架要运行于Mesos之上,必须要在编程框架的主部分中增加与Mesos的交互模块。Mesos提供了一套资源-提供(resource-offer)机制与编程框架的master交互。编程框架的主部分在基于资源-提供机制提供的API接收或者拒绝Mesos推送的资源,包括CPU和内存。因此对编程框架而言,需要进行大量的内部逻辑修改,对编程框架使用人员而言成本太高,大大降低了 Mesos使用的灵活性。资源虚拟化方面,Mesos使用了操作系统级别虚拟化工具容器(Linux Container),管理CPU和内存两种资源,在保证编程框架性能的同时,也保证了编程框架之间的资源隔离,效果良好。在资源利用率方面,Mesos将空闲资源迅速回收,并通过资源-提供机制将空闲资源实时推送给编程框架,编程框架根据自身机制选择是否接受,通过这种方式能有效提高集群资源利用率。Mesos在资源虚拟化方面和提升资源利用率方面的表现很好,其缺点在于兼容现有的编程框架比较繁琐,兼容性不足。3)Hadoop-YarnHadoopO. 23对Hadoop的架构进行了重大的革新。HadoopO. 23将编程框架与运行时框架解耦,分离出MapReduce编程框架和资源管理系统,新一代的架构称为Yarn。Yarn采用主从架构,资源管理器(ResourceManager)是主部分,节点管理器(NodeManager)是其从部分。资源管理器负责调度分发资源请求,节点管理器负责启动任务。在Yarn中有两种运行实体,一种是程序管理器(App Master),一种是容器(Container)。程序管理器是应用程序的主部分,比如MapReduce的主部分,而容器是 程序管理器向资源管理器申请资源获得匹配后启动的程序,比如MapReduce的工作者(worker)。通过Yarn的架构,可以在Yarn上运行多种编程框架,比如MapReduce, DAG等等。Yarn提供了一套API,用户可以通过该API构建新的编程框架,也可以修改已有的编程框架,在其代码中加入与Yarn交互的资源管理模块。资源管理方面,节点管理器将运行任务的资源使用情况上报给资源管理器,资源管理器对其进行管理。Yarn目前仅对内存进行了管理,当某个程序的内存超出规定的额度时出触发相应的动作,比如杀死该任务。通过上述的描述可以发现,Yarn在兼容性上存在与Mesos—样的问题,要么重新编写编程框架,要么对已有的编程框架进行修改,以适配Yarn。资源虚拟化方面,Yarn使用JVM高级语言虚拟化来隔离资源,隔离性不高,另外,管理的资源目前仅包括内存,并没有对CPU和输入输出带宽资源的管理。总体而言,Yarn在兼容现有的编程框架上存在困难,在资源虚拟化方面稍显不足,资源利用率也相对较低。综上所述,目前的集群资源管理系统存在如下问题对数据处理编程框架支持困难,兼容性差;多编程框架共存集群中资源利用率不高,数据共享困难;资源竞争导致共存的编程框架效率不高。
技术实现思路
本专利技术所要解决的技术问题是提供一种面向分布式编程框架的资源管理系统,具有良好的兼容性,方便用户使用。为解决上述技术问题,本专利技术提出了一种面向分布式编程框架的资源管理系统,包括主部分和从部分,其中所述从部分,用于启动编程框架执行器,监控编程框架执行器的运行状态,向所述主部分的调度器上报编程框架执行器的运行状态,向所述主部分报告该从部分的资源使用信息和该从部分上编程框架执行器的资源使用信息;所述主部分包括收集器,用于接收并保存所述从部分的资源使用信息和所述从部分上编程框架执行器的资源使用信息,保存集群资源信息;所述收集器中包括监控器,用于监控所述从部分上编程框架执行器的资源使用信息,并根据编程框架定制的资源调整决策触发器向调度器发送为编程框架增加或减少资源的任务;调度器,用于调度、下发和控制所述监控器发送的为编程框架增加或减少资源的任务。进一步地,上述面向分布式编程框架的资源管理系统还可具有以下特点,所述调度器中包括关键资源匹配模块,用于根据关键资源匹配算法选择匹配机器,所述关键资源匹配算法为计算一台机器中每种资源的需求-可用比,所述需求-可用比为资源的需求与可用的比例,用需求-可用比最高的资源的需求-可用比作为该机器的关键资源比例,从集群中选出关键资源比例最高的机器作为匹配机器; 容器创建模块,用于在所述关键资源匹配模块选择的匹配机器上执行资源增加任务创建容器;资源分配模块,用于将所述容器创建模块所创建的容器的资源分配给提出资源要求的编程框架。本文档来自技高网
...

【技术保护点】
一种面向分布式编程框架的资源管理系统,其特征在于,包括主部分和从部分,其中:所述从部分,用于启动编程框架执行器,监控编程框架执行器的运行状态,向所述主部分的调度器上报编程框架执行器的运行状态,向所述主部分报告该从部分的资源使用信息和该从部分上编程框架执行器的资源使用信息;所述主部分包括:收集器,用于接收并保存所述从部分的资源使用信息和所述从部分上编程框架执行器的资源使用信息,保存集群资源信息;所述收集器中包括监控器,用于监控所述从部分上编程框架执行器的资源使用信息,并根据编程框架定制的资源调整决策触发器向调度器发送为编程框架增加或减少资源的任务;调度器,用于调度、下发和控制所述监控器发送的为编程框架增加或减少资源的任务。

【技术特征摘要】

【专利技术属性】
技术研发人员:张章陈竞韩冀中戴娇孟丹
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

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

1