CN101986661A - 一种改进的虚拟机群下MapReduce数据处理方法 - Google Patents
一种改进的虚拟机群下MapReduce数据处理方法 Download PDFInfo
- Publication number
- CN101986661A CN101986661A CN2010105327539A CN201010532753A CN101986661A CN 101986661 A CN101986661 A CN 101986661A CN 2010105327539 A CN2010105327539 A CN 2010105327539A CN 201010532753 A CN201010532753 A CN 201010532753A CN 101986661 A CN101986661 A CN 101986661A
- Authority
- CN
- China
- Prior art keywords
- data
- virtual machine
- virtual
- data processing
- machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种改进的虚拟机群下MapReduce数据处理方法,任务调度管理中心将任务分配给虚拟机,获取任务分配的虚拟机向数据存储管理中心询问任务的输入数据所在的物理机,虚拟机在得到的物理机中选取与自身拓扑距离最近的物理机进行数据读取,并作数据处理。本发明将数据存储和处理分开独立,物理机专用于存储数据,虚拟机专用于数据处理,并设计了适应虚拟机群的数据读取策略,缩短了作业时间,解决了性能迟滞,减少资源消耗,提高了MapReduce数据处理性能。
Description
技术领域
本发明属于分布式计算模型领域,具体涉及虚拟机群下MapReduce性能的提升。
背景技术
云计算技术发展迅猛,应用也越来越广泛。云计算有两个重要的组成部分,一个是虚拟化技术:虚拟化技术是一种将底层物理设备与上层操作系统、软件分离的一种去耦合技术,它可以实现计算资源的高效灵活使用,可以更加充分合理地利用计算资源,满足日益多样的计算需求,使人们能够透明,高效,可定制地使用计算资源,从而真正实现灵活构建,按需计算的理念;第二个是大规模数据处理中间件,以MapReduce为代表的大规模数据处理模型正在得到广泛应用,MapReduce是一个包含有容错性和自动任务调度的分布式计算中间件,让用户定义两个处理函数后,便可以自行处理任务分配、任务重启等事情,MapReduce运行环境让用户不需要显示的去考虑这些问题,从而让用户专注于程序逻辑设计。但是,MapReduce设计之初没有考虑虚拟机群环境,所以,到目前为止,在结合这两者的优势研究方面,并没有出现可观的方法。以亚马逊Amazon公司提出的EC2(弹性云计算)为例,用户在自定义的虚拟机群上启动MapReduce后,MapReduce没有感知到底层运行环境的变化,依然按照原有策略来执行,这样会带来比较严重的性能迟滞问题:开启虚拟机群后,数据需要先从物理机群导入到虚拟机群后才能被MapReduce作业使用,而且在计算完成后,数据也需要被导出,这样,对于大规模数据的导入导出,耗费的时间非常巨大,比如100TB数据的移动在10Gb/s的信道上需要一天的时间。即使数据在计算完成后不进行导出,那么会造成虚拟机不能关闭,影响别的用户对物理机群的使用性能,也会带来额外的电能开销。
发明内容
本发明的目的在于提供一种改进的虚拟机群下MapReduce数据处理方法,具有更短作业时间、更少资源消耗的特点。
一种改进的虚拟机群下MapReduce数据处理方法,涉及物理机、虚拟机、数据存储管理中心和任务调度管理中心,物理机用于存储任务的输入数据,虚拟机进行数据处理,该方法具体为:
(1)任务调度管理中心将任务分配给虚拟机;
(2)获取任务分配的虚拟机向数据存储管理中心询问任务的输入数据所在的物理机;
(3)虚拟机在步骤(2)得到的物理机中选取与自身拓扑距离最近的物理机进行数据读取,并执行任务。
作为优化,所述数据存储管理中心按照物理机存储性能高则存储数据多的原则为物理机分配任务的输入数据,任务调度管理中心按物理机存储性能高则虚拟机数量多的原则为物理机开启虚拟机。
本发明的技术效果体现在:
1.解耦存储管理和计算。在这个技术前提下,数据便会一直存在于物理机群上,省去了导入和导出的巨大开销;同时,让虚拟机变成一个只负责计算的活性个体,计算完成后便可以放心删除,不会影响其他用户对底层资源的使用。
2.适应虚拟机群的新的拓扑结构。MapReduce发明之初,并没有考虑对虚拟机群进行设计;对于MapReduce来说,存储和计算进程总是存在于一个节点上的,这个前提在虚拟机群下不成立。所以本发明设计了适应虚拟机群的新的MapReduce拓扑结构。
3.适应虚拟机群的数据读取策略。在解耦存储和计算后,计算节点获取任务之后,由于其输入数据不在它所处的节点上,这样在原有的MapReduce运行环境中会引起随机找个节点读取数据,导致性能迟滞。所以本发明设计了适应虚拟机群的新的数据读取策略,对已存在物理机群上的数据进行放置调整。
4、虚拟机开启策略。数据放置集中的地方启动更多的虚拟机,这样带来了更短的作业时间的效果,省去了导入导出数据的开销。
附图说明
图1为虚拟机群下MapReduce的工作图。
图2为JobTracker新的拓扑策略流程图。
图3为JobTracker采取新拓扑策略后形成的拓扑图。
图4为MapTask读分块的策略流程图。
图5为Namenode在处理数据块读取请求时拓扑结构中间状态图。
具体实施方式
本发明在虚拟机群上重新建立MapReduce工作环境,也就是解耦存储和计算单元。如图1所示,虚拟机1.1.1和虚拟机1.1.2的宿主是物理机1.1(以此类推,虚拟机1.2.1,1.2.2的宿主是物理机1.2,虚拟机1.N.1,1.N.2的宿主是物理机1.N)。
有了虚拟机群环境后,数据的分配策略便是一个很关键的问题,由于计算单元的密度更高了,若物理机上存储的数据的密度仍然和以往一样,势必会导致计算单元找不到本地数据读取,所以输入数据需要在物理机群上重新分配,根据用户需要的物理节点数目和虚拟节点数目来调整;并且要保证各个用户之间的物理节点尽量不重叠。这样,在用户放置数据的物理节点上开启虚拟机,就能保证很高的数据本地性和计算效率。具体实施方式是:1.确定该用户所需要的物理节点集和每个物理节点上需要开启的计算节点数目;2.获取各个物理节点的存储性能值;3.按存储性能比例来分配数据,存储性能高的获取更多的数据;4.按存储性能比例开启对应数目的虚拟机。
解耦之后,虚拟机便成为只负责计算的实体,数据存储在物理机群上,这样灵活性更大,省去了数据导入导出的开销。解耦会带来一个问题,能不能解决该问题就成为了本发明成功与否的关键:在经典的MapReduce任务调度算法里,任务之所以调度给某个计算节点,是因为该计算节点所处的物理节点上有存储节点,且该存储节点存储了这个任务所需要的输入数据块,这样任务调度到该计算节点后,便会直接从本机读取输入数据,以提高效率。这个调度思想在MapReduce中,称之为数据本地性思想。但是在虚拟机群中,由于存储单元和计算单元的分离,以往的数据本地性始终不能满足,所以会造成计算节点永远找不到靠近它的输入数据块,而只是会被随机分配一个存储节点的数据块,这样在多个任务同时读数据时,会使得某些存储节点成为热点,导致性能降低。如下两段是用来描述如何解决这个问题的。
如图2所示,MapReduce的任务调度中心JobTracker需要对虚拟机群的拓扑结构进行适应,在计算单元TaskTracker根据JobTracker的IP信息发送心跳时,会报告给JobTracker自己的网络名字tt,JobTracker根据这个网络名字查询TaskTracker所处的物理机名字dt,然后把/upper-rack(上层机架)/dt/tt加入到自己维护的网络拓扑结构中。在建立好拓扑结构后,还要重新建立Map任务缓存这个数据结构,以便于调度任务,这个过程,在用户提交作业后发生。如图2所示,若一个用户向JobTracker提交了一个作业,那么JobTracker会首先计算出这个作业有多少个“切片”输入(一个切片包含一个或多个数据块),然后对每一个切片向数据存储管理中心Namenode询问该切片存储在哪些存储节点上,若切片split1存储在dt1,dt2上,那么JobTracker便会在内部建立<dt1,MapTask1>,<dt2,MapTask1>,<upper-rack1,MapTask1>的一个哈希表(如图3所示)。之后,当tt1向JobTracker索求任务时,JobTracker便会在建立好的拓扑结构树中查询到其宿主节点dt1,便把MapTask1调度给该计算节点。这种调度方法便实现了本发明中的数据本地性。
由于Namenode和JobTracker的职责独立性,即使计算节点tt1获取到任务MapTask1,且MapTask1的输入数据就是在tt1所处的宿主节点dt1上,tt1也不一定从dt1上读取数据。在原有的MapReduce系统中,申请读取数据块的节点,会把自己的网络地址告诉Namenode,然后Namenode把离该节点最近且存储有所需数据块的存储节点按距离排序,返回给这个计算节点。计算节点把距离最近的存储节点地址抽取出来,再进行读取。但是在现有的虚拟机群下,本发明采用了新的数据读取策略。如图4所示,当计算节点确定需要读取哪个数据块后,便把自己的网络地址/upper-rack/dt1/tt1发送给Namenode,Namenode会锁住其维护的拓扑结构树,把/upper-rack/dt1/tt1加入到该树中(如图5所示)。接下来,Namenode在该计算节点的父亲节点和叔父节点中寻找包含有所需输入的数据块的节点,并计算其与tt1的距离,比如tt1与dt1的距离为1,与dt2的距离为3。按距离排序好后,把节点数据返回给计算节点,并解锁拓扑结构树。计算节点判断距离最近的是不是宿主机,若是宿主机器的话,读取数据便可以通过挂在宿主磁盘的方式,避免了TCP/IP封包拆包的开销。
在完成作业计算过程后,虚拟机便可以关闭。
Claims (2)
1.一种改进的虚拟机群下MapReduce数据处理方法,涉及物理机、虚拟机、数据存储管理中心和任务调度管理中心,物理机存储任务的输入数据,虚拟机进行数据处理,该方法具体为:
(1)任务调度管理中心将任务分配给虚拟机;
(2)获取任务分配的虚拟机向数据存储管理中心查询任务的输入数据所在的物理机;
(3)虚拟机在步骤(2)得到的物理机中选取与自身拓扑距离最近的物理机进行数据读取,并作数据处理。
2.根据权利要求1所述的虚拟机群下MapReduce数据处理方法,其特征在于,所述数据存储管理中心按照物理机存储性能高则存储数据多的原则为物理机分配任务的输入数据,任务调度管理中心按物理机存储性能高则虚拟机数量多的原则为物理机开启虚拟机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010532753.9A CN101986661B (zh) | 2010-11-04 | 2010-11-04 | 一种改进的虚拟机群下MapReduce数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010532753.9A CN101986661B (zh) | 2010-11-04 | 2010-11-04 | 一种改进的虚拟机群下MapReduce数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101986661A true CN101986661A (zh) | 2011-03-16 |
CN101986661B CN101986661B (zh) | 2014-06-04 |
Family
ID=43710964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010532753.9A Expired - Fee Related CN101986661B (zh) | 2010-11-04 | 2010-11-04 | 一种改进的虚拟机群下MapReduce数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101986661B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780601A (zh) * | 2011-05-13 | 2012-11-14 | 国际商业机器公司 | 管理虚拟网络的方法与系统 |
CN102904750A (zh) * | 2012-09-24 | 2013-01-30 | 曙光信息产业(北京)有限公司 | 一种基于网络拓扑结构的作业分配方法 |
CN103036949A (zh) * | 2012-11-27 | 2013-04-10 | 华中科技大学 | 一种虚拟化环境下Cassandra系统的优化方法和系统 |
CN103561061A (zh) * | 2013-10-17 | 2014-02-05 | 南京邮电大学 | 一种弹性的云数据挖掘平台部署方法 |
CN104468379A (zh) * | 2013-09-16 | 2015-03-25 | 浙江大学 | 基于最短逻辑距离的虚拟Hadoop集群节点选择方法及装置 |
CN105426255A (zh) * | 2015-12-28 | 2016-03-23 | 重庆邮电大学 | Hadoop大数据平台中基于网络I/O代价评估的ReduceTask数据本地性调度方法 |
CN105487928A (zh) * | 2014-09-26 | 2016-04-13 | 联想(北京)有限公司 | 一种控制方法、装置及Hadoop系统 |
CN105516263A (zh) * | 2015-11-28 | 2016-04-20 | 华为技术有限公司 | 存储系统中数据分发方法、装置、计算节点及存储系统 |
US9348632B2 (en) | 2013-09-29 | 2016-05-24 | International Business Machines Corporation | Data assignment and data scheduling for physical machines in a virtual machine environment |
CN108132838A (zh) * | 2016-11-30 | 2018-06-08 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
CN113676559A (zh) * | 2021-10-23 | 2021-11-19 | 深圳希研工业科技有限公司 | 物联网多设备移动边缘计算的信息处理系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188676A1 (en) * | 2001-05-18 | 2002-12-12 | Fujiko Iai | Data server, data distribution program, computer-readable record medium bearing data distribution program, and client apparatus |
EP1868114A1 (de) * | 2006-06-12 | 2007-12-19 | Konrad-Zuse-Zentrum für Informationstechnik Berlin | Vorrichtung und Verfahren zum Speichern und Abrufen von Objekten mit mehrdimensional adressierten, elektronischen Daten |
CN101753608A (zh) * | 2008-12-09 | 2010-06-23 | 中国移动通信集团公司 | 分布式系统的调度方法及系统 |
CN101799809A (zh) * | 2009-02-10 | 2010-08-11 | 中国移动通信集团公司 | 数据挖掘方法和数据挖掘系统 |
-
2010
- 2010-11-04 CN CN201010532753.9A patent/CN101986661B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188676A1 (en) * | 2001-05-18 | 2002-12-12 | Fujiko Iai | Data server, data distribution program, computer-readable record medium bearing data distribution program, and client apparatus |
EP1868114A1 (de) * | 2006-06-12 | 2007-12-19 | Konrad-Zuse-Zentrum für Informationstechnik Berlin | Vorrichtung und Verfahren zum Speichern und Abrufen von Objekten mit mehrdimensional adressierten, elektronischen Daten |
CN101753608A (zh) * | 2008-12-09 | 2010-06-23 | 中国移动通信集团公司 | 分布式系统的调度方法及系统 |
CN101799809A (zh) * | 2009-02-10 | 2010-08-11 | 中国移动通信集团公司 | 数据挖掘方法和数据挖掘系统 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780601A (zh) * | 2011-05-13 | 2012-11-14 | 国际商业机器公司 | 管理虚拟网络的方法与系统 |
CN102904750A (zh) * | 2012-09-24 | 2013-01-30 | 曙光信息产业(北京)有限公司 | 一种基于网络拓扑结构的作业分配方法 |
CN102904750B (zh) * | 2012-09-24 | 2017-06-23 | 曙光信息产业(北京)有限公司 | 一种基于网络拓扑结构的作业分配方法 |
CN103036949B (zh) * | 2012-11-27 | 2015-06-17 | 华中科技大学 | 一种虚拟化环境下Cassandra系统的优化方法和系统 |
CN103036949A (zh) * | 2012-11-27 | 2013-04-10 | 华中科技大学 | 一种虚拟化环境下Cassandra系统的优化方法和系统 |
CN104468379B (zh) * | 2013-09-16 | 2017-09-26 | 浙江大学 | 基于最短逻辑距离的虚拟Hadoop集群节点选择方法及装置 |
CN104468379A (zh) * | 2013-09-16 | 2015-03-25 | 浙江大学 | 基于最短逻辑距离的虚拟Hadoop集群节点选择方法及装置 |
US9348632B2 (en) | 2013-09-29 | 2016-05-24 | International Business Machines Corporation | Data assignment and data scheduling for physical machines in a virtual machine environment |
CN103561061A (zh) * | 2013-10-17 | 2014-02-05 | 南京邮电大学 | 一种弹性的云数据挖掘平台部署方法 |
CN103561061B (zh) * | 2013-10-17 | 2016-08-10 | 南京邮电大学 | 一种弹性的云数据挖掘平台部署方法 |
CN105487928A (zh) * | 2014-09-26 | 2016-04-13 | 联想(北京)有限公司 | 一种控制方法、装置及Hadoop系统 |
CN105487928B (zh) * | 2014-09-26 | 2019-02-05 | 联想(北京)有限公司 | 一种控制方法、装置及Hadoop系统 |
CN105516263A (zh) * | 2015-11-28 | 2016-04-20 | 华为技术有限公司 | 存储系统中数据分发方法、装置、计算节点及存储系统 |
CN105516263B (zh) * | 2015-11-28 | 2019-02-01 | 华为技术有限公司 | 存储系统中数据分发方法、装置、计算节点及存储系统 |
CN105426255A (zh) * | 2015-12-28 | 2016-03-23 | 重庆邮电大学 | Hadoop大数据平台中基于网络I/O代价评估的ReduceTask数据本地性调度方法 |
CN105426255B (zh) * | 2015-12-28 | 2019-04-19 | 重庆邮电大学 | Hadoop大数据平台中基于网络I/O代价评估的ReduceTask数据本地性调度方法 |
CN108132838A (zh) * | 2016-11-30 | 2018-06-08 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
US11256749B2 (en) | 2016-11-30 | 2022-02-22 | Huawei Technologies Co., Ltd. | Graph data processing method and apparatus, and system |
CN113676559A (zh) * | 2021-10-23 | 2021-11-19 | 深圳希研工业科技有限公司 | 物联网多设备移动边缘计算的信息处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101986661B (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101986661B (zh) | 一种改进的虚拟机群下MapReduce数据处理方法 | |
Kaur et al. | Container-as-a-service at the edge: Trade-off between energy efficiency and service availability at fog nano data centers | |
CN104881325B (zh) | 一种资源调度方法和资源调度系统 | |
CN103336808B (zh) | 一种基于bsp模型的实时图数据处理系统及方法 | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
CN101938416B (zh) | 一种基于动态重配置虚拟资源的云计算资源调度方法 | |
CN103516807B (zh) | 一种云计算平台服务器负载均衡系统及方法 | |
CN103092698B (zh) | 云计算应用自动部署系统及方法 | |
CN108829494A (zh) | 基于负载预测的容器云平台智能资源优化方法 | |
CN104050042B (zh) | Etl作业的资源分配方法及装置 | |
CN107066319A (zh) | 一种面向异构资源的多维调度系统 | |
CN102932279A (zh) | 一种云环境数据中心多维资源调度系统及方法 | |
CN104331321A (zh) | 基于禁忌搜索和负载均衡的云计算任务调度方法 | |
CN104679595B (zh) | 一种面向应用的IaaS层动态资源分配方法 | |
CN110058932A (zh) | 一种用于数据流驱动计算的存储方法和存储系统 | |
CN102169505A (zh) | 基于云计算的推荐系统构建方法 | |
CN103930875A (zh) | 用于加速业务数据处理的软件虚拟机 | |
CN102223419A (zh) | 面向网络化操作系统的虚拟资源动态反馈均衡分配机制 | |
CN107864211B (zh) | 集群资源调度方法及系统 | |
CN104503838A (zh) | 一种虚拟cpu调度方法 | |
CN102164184A (zh) | 云计算网络中计算机实体的接入和管理方法及云计算网络 | |
CN104503832B (zh) | 一种公平和效率均衡的虚拟机调度系统及方法 | |
CN103700041A (zh) | 基于云计算的智能电网负荷预测管理平台 | |
CN103353852A (zh) | 一种虚拟化WebService的IaaS的构建方法 | |
CN104536803A (zh) | 一种基于组合优化的虚拟机调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140604 Termination date: 20191104 |