[发明专利]一种基于虚拟机动态迁移的高性能MapReduce实现方法有效
申请号: | 201410238408.2 | 申请日: | 2014-05-30 |
公开(公告)号: | CN104008012B | 公开(公告)日: | 2017-10-20 |
发明(设计)人: | 唐卓;江林刚;曾优;杨黎;马稳;祁玲 | 申请(专利权)人: | 长沙麓云信息科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/455 |
代理公司: | 长沙市融智专利事务所43114 | 代理人: | 黄美成 |
地址: | 410082 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 虚拟机 动态 迁移 性能 mapreduce 实现 机制 | ||
技术领域
本发明涉及一种基于虚拟机动态迁移的高性能MapReduce实现方法。
背景技术
当前云计算作为一种商业计算模式,促进了网络化操作系统的提出。云计算的核心技术是虚拟化技术,虚拟机云管理平台作为网络化操作系统的基础,建立在由大量服务器等硬件资源组成的集群之上向用户提供可用的操作系统环境,并且相互之间无影响,即实现IaaS(基础设施即服务)。
现有技术和运营模式下,在云计算系统中的虚拟机云管理平台里,采用提供操作系统模板映像的方式为用户创建虚拟机,模板映像是已经安装好操作系统并集成应用程序、上传至云系统的磁盘映像。具体来说是在用户要创建虚拟机时,虚拟机云管理平台根据用户自己所选择的模板映像来将该模板映像复制一份作为虚拟机的虚拟磁盘。这样,虚拟机创建完成并启动之后,就是安装了操作系统可供用户直接使用的虚拟机。
MapReduce是谷歌公司发明的一种编程模型,用于大规模数据集的并行运算。它主要由两部分组成:编程模型和运行环境。其中,编程模型为用户提供了非常简易的编程接口,用户只需像编写一般串行程序一样实现简单的主函数、Map函数、Reduce函数即可实现一个分布式程序,而其他复杂的工作,如节点间的通信、节点失效的处理、数据的切分等,都由运行环境自行完成,用户无须关心这些细节。
Hadoop作为谷歌MapReduce分布式计算模型的开源实现版本,已在工业界广泛应用。当前Hadoop MapReduce的软件实现主要由以下几个组件组成:client(客户端)、JobTracker(作业服务器)、TaskTracker(任务服务器)和任务。
(1)Client(客户端)
在Hadoop内部,用“作业”表示分布式程序,每个作业会被分解成若干个split(分块)。Client负责将用户编写的作业提交到JobTracker端。此外,Client提供一些接口可以查看作业的运行状态。
(2)JobTracker(作业服务器)
JobTracker主要负责系统资源监控和用户作业调度。在Hadoop中,JobTracker是一个可插拔的模块,用户可以根据自己的实际需要设计、更改相应的JobTracker。
(3)TaskTracker(任务服务器)
TaskTracker会周期性地通过心跳包将本节点上资源使用情况和任务运行情况汇报给JobTracker,同时接收JobTracker发送过来的命令并执行相应的操作(如启动新任务、终止某个任务等)。
(4)任务
任务分为Map(映射)任务和Reduce(规约)任务两种,均由TaskTracker启动。在Hadoop内部,数据处理的最小单位是split(分块),每个split会交由一个Map任务处理,Map任务和Map任务之间是并行执行的。Map任务先将对应的split迭代解析成一个个(key,value)键值对,并依次调用用户自定义的map函数将其映射成一组新的(key,value)键值对,最终将中间数据即新的(key,value)键值对存放到本地磁盘上,其中中间数据被分成若干个partition(分区),每个partition(分区)将被一个Reduce任务处理。Reduce任务用来把所有Map任务产生的partition按照key值,对对应的value值进行处理,产生多个共享相同key值的键组,最终完成整个作业。
这种将作业分割成许多小任务并行执行的思想,非常适合云计算时代的大数据处理。一些国际国内领先厂商,尤其是FaceBook、Yahoo!以及阿里巴巴等互联网巨头,均在使用Hadoop做大数据处理的工作。然而,由于开发时间较短,Hadoop仍存在一定的问题,特别是中间数据管理问题。在广泛使用的Hadoop 1.2.0版本中中,Reduce任务包含了拷贝、排序和Reduce函数执行的三个阶段。拷贝阶段是读取所有Map任务的输出数据patition(即中间数据);排序阶段是对Reduce阶段的输入数据进行排序;最后利用Reduce函数来产生最终的结果。拷贝和排序这两个阶段是为Reduce任务的输入数据进行预处理。在实际的应用环境中,拷贝和排序这两个阶段占用Reduce任务较多的时间,尤其是在拷贝阶段,每个Reduce任务都必须从远端物理节点通过网络通信带宽读取中间数据,从而导致了较大的网络延迟。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长沙麓云信息科技有限公司,未经长沙麓云信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410238408.2/2.html,转载请声明来源钻瓜专利网。