CN101996079A - 一种基于管道通信的MapReduce编程框架运算方法 - Google Patents
一种基于管道通信的MapReduce编程框架运算方法 Download PDFInfo
- Publication number
- CN101996079A CN101996079A CN2010105565132A CN201010556513A CN101996079A CN 101996079 A CN101996079 A CN 101996079A CN 2010105565132 A CN2010105565132 A CN 2010105565132A CN 201010556513 A CN201010556513 A CN 201010556513A CN 101996079 A CN101996079 A CN 101996079A
- Authority
- CN
- China
- Prior art keywords
- task
- reduce
- data
- map
- pipeline
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于管道通信的MapReduce编程框架运算方法,该方法在Map任务和Reduce任务之间实现管道通信,避免将中间结果写入分布式文件系统,并使Map任务和Reduce任务并行化执行;该方法还提供了容错策略,Reduce任务将收到的数据存储到临时缓冲区,Map任务失败时,忽略它从管道发来的所有数据;Map任务将其发出去的数据暂时保存,Reduce任务失败时,将这些数据重新发送给复制的Reduce任务。本发明成果能节省布式文件系统的维护代价,大幅度缩短作业的执行时间,且具备健壮的容错性。
Description
技术领域
本发明涉及云计算领域,具体说是一种云计算环境下基于管道通信的MapReduce编程框架运算方法。
背景技术
自从2007年IBM和Google联合推出云计算以来,云计算已经成为工业界和学术界都关注的热点问题,云计算已成为分布式计算未来发展方向。
由Google提出的MapReduce编程框架是云计算中的代表性技术,它适用于分布式处理大规模数据集,程序员在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据处理的中间结果进行规约。
传统MapReduce编程框架存在如下问题:(1)传统MapReduce编程框架将中间结果保存到分布式文件系统(DFS, Distributed File System),每个文件在DFS上往往存在多个拷贝,因此,保存中间结果的存储空间维护代价高、效率低;(2)在传统MapReduce编程框架下,Map任务和Reduce任务串行执行,而且它们都需要从DFS上读取输入文件,这些因素都延长了作业的执行时间。
发明内容
本发明的目的是提供一种基于管道通信的MapReduce编程框架,通过在Map任务和Reduce任务之间添加通信管道,使Map任务和Reduce任务所产生的中间结果无需保存到DFS,而直接通过管道进行数据交换。而且,Map任务和Reduce任务能同步交换数据,使Map任务和Reduce任务能并行执行。本发明能节省DFS维护代价,大幅度缩短作业的执行时间,且具备健壮的容错性。
本发明的目的是通过以下技术方案来实现的:
一种基于管道通信的MapReduce编程框架运算方法,其特征在于该运算方法利用SOCKET编程在Map任务和Reduce任务之间实现管道通信,具体步骤如下:
1)Map任务初始化时打开SOCKET与Reduce任务建立通信管道,Map任务开始执行后,边执行边将输出的中间结果通过管道发给Reduce任务;Reduce任务同步接收来自于Map任务的数据,将这些数据存储到内存缓冲区中,Reduce在收到的部分数据的情况下,一旦满足其执行条件,Reduce基于部分输入数据开始执行;此时,Map任务尚未完成,Map任务和Reduce任务并行化执行;
2)当所有Map任务都执行完毕时,Reduce任务合并来自于同一Map任务的数据,并继续执行直至完毕;若Reduce任务产生的中间数据还需要被下一轮的Map任务所使用,则Reduce任务将中间数据通过管道传送给Map任务;若Reduce任务产生的数据是最后结果,则Reduce任务将结果写入DFS。
本发明中的容错策略是:Reduce任务从管道接收到Map任务发来的数据时,Reduce任务将收到的数据暂时存储到临时缓冲区,当确认Map任务成功完成时,才将临时缓冲区的结果合并;当Reduce任务获知Map任务失败时,忽略该Map任务从管道发来的所有数据;Map任务将其发出去的数据全部暂时保存,当Reduce任务失败时,将暂时保存的已发送过的数据重新向复制的Reduce任务发送。
本发明避免了传统的Map任务和Reduce任务将中间结果存储到DFS,从而降低DFS维护代价,并减少从DFS读取数据的时间。Reduce任务能基于部分输入数据开始执行,使得Map任务和Reduce任务并行化执行。相比于传统MapReduce编程框架,本发明既减少从DFS读取数据的时间,又使得Map任务和Reduce任务并行化执行,从而大幅度地减少了作业的执行时间。
本发明还分别针对Map任务失败和Reduce任务失败提供了容错策略,使其具备了健壮的容错性。
附图说明
图1为传统MapReduce编程框架数据流的示意图;
图2本发明数据流的示意图;
图3为本发明容错策略的流程图;
图4为本发明与传统MapReduce编程框架Map和Reduce任务执行过程比较图。
具体实施方式
一种本发明所述的基于管道通信的MapReduce编程框架运算方法,本发明数据流与传统MapReduce编程框架数据流存在较大区别,图1为传统MapReduce编程框架数据流的示意图;图2本发明数据流的示意图。传统MapReduce编程框架中,Map任务和Reduce任务将所有输出都写入DFS,也是从DFS异步读取输入数据。而本发明中,Map任务从DFS同步读取输入数据,开始执行,将产生的数据同步传送给管道,Reduce任务从管道同步获取数据,开始执行。若Reduce任务产生的中间数据还需要被下一轮的Map任务所使用,则Reduce任务将中间数据通过管道传送给Map任务;若Reduce任务产生的数据是最后结果,则Reduce任务将结果写入DFS。由于下一轮Map任务需要等到上一轮Reduce任务全部结
束后才具备执行条件,因此,Reduce传送给Map的数据时异步的。
本发明的容错策略,如图3所示,包括如下步骤:
步骤1. Map任务开始执行,产生中间数据,通过管道发送给Reduce任务;
步骤2. Reduce任务从管道获取数据,开始执行。在Map和Reduce任务并行执行过程中,进行步骤3和4的判断;
步骤3. 判断Map任务是否失败。若是,转到步骤5;否则,转到步骤6;
步骤4. 判断Reduce任务是否失败。若是,转到步骤7;否则,转到步骤8;
步骤5. Map任务失败,Reduce任务丢弃来自该Map任务的所有数据,继续接收复制的Map任务发来的数据;
步骤6. Map任务正常,并执行完毕。Reduce任务合并同一Map任务的数据,并继续执行,直至完成;
步骤7. Reduce任务失败,生成该任务的拷贝。Map任务将暂时保存的已发送过的数据重新向复制的Reduce任务发送。转入步骤2;
步骤8. Reduce任务正常,执行直至完成。
云计算平台能对Map任务和Reduce任务进行监控,步骤3和步骤4的监测判断不是一次,而是在Map和Reduce任务并行执行过程中的持续监测。
图4是由实验得出的本发明和传统MapReduce编程框架Map和Reduce任务执行过程的比较结果,实验基于MapReduce编程框架实现数据挖掘算法Apriori,实验设置80,000条数据库记录,包含500项,8个Map任务结点。记录随着时间的推进,Map和Reduce任务执行进度的变化,执行进度是区间[0,1]内的值,表示已完成的任务占总任务量的百分比。由实验结果可知:
1、本发明实施方式所提出的基于管道通信MapReduce编程框架中,Reduce任务可以与Map任务并行执行;而传统MapReduce则不可以;
2、基于管道通信MapReduce编程框架的执行时间远比传统MapReduce小,说明,本发明实施方式能大幅度地降低作业执行时间;
3、另外,基于管道通信MapReduce编程框架不将所有的中间数据写入DFS,因而可节约DFS的存储空间,减少DFS的维护代价。
Claims (2)
1.一种基于管道通信的MapReduce编程框架运算方法,其特征在于该运算方法利用SOCKET编程在Map任务和Reduce任务之间实现管道通信,具体步骤如下:
1)Map任务初始化时打开SOCKET与Reduce任务建立通信管道,Map任务开始执行后,边执行边将输出的中间结果通过管道发给Reduce任务;Reduce任务同步接收来自于Map任务的数据,将这些数据存储到内存缓冲区中,Reduce在收到的部分数据的情况下,一旦满足其执行条件,Reduce基于部分输入数据开始执行;此时,Map任务尚未完成,Map任务和Reduce任务并行化执行;
2)当所有Map任务都执行完毕时,Reduce任务合并来自于同一Map任务的数据,并继续执行直至完毕;若Reduce任务产生的中间数据还需要被下一轮的Map任务所使用,则Reduce任务将中间数据通过管道传送给Map任务;若Reduce任务产生的数据是最后结果,则Reduce任务将结果写入DFS。
2.根据权利要求1所述的基于管道通信的MapReduce编程框架运算方法,其特征在于: Reduce任务从管道接收到Map任务发来的数据时,Reduce任务将收到的数据暂时存储到临时缓冲区,当确认Map任务成功完成时,才将临时缓冲区的结果合并;当Reduce任务获知Map任务失败时,忽略该Map任务从管道发来的所有数据;Map任务将其发出去的数据全部暂时保存,当Reduce任务失败时,将暂时保存的已发送过的数据重新向复制的Reduce任务发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105565132A CN101996079A (zh) | 2010-11-24 | 2010-11-24 | 一种基于管道通信的MapReduce编程框架运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105565132A CN101996079A (zh) | 2010-11-24 | 2010-11-24 | 一种基于管道通信的MapReduce编程框架运算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101996079A true CN101996079A (zh) | 2011-03-30 |
Family
ID=43786267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105565132A Pending CN101996079A (zh) | 2010-11-24 | 2010-11-24 | 一种基于管道通信的MapReduce编程框架运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101996079A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710772A (zh) * | 2012-06-04 | 2012-10-03 | 包丽霞 | 一种基于云平台的海量数据通讯系统 |
CN102880510A (zh) * | 2012-09-24 | 2013-01-16 | 中国科学院对地观测与数字地球科学中心 | 基于多数据架构中心面向数据密集型应用的并行编程方法 |
CN103327128A (zh) * | 2013-07-23 | 2013-09-25 | 百度在线网络技术(北京)有限公司 | 用于MapReduce的中间数据传输方法及系统 |
WO2015014191A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 基于mapreduce模型的数据排序方法和系统 |
CN105955819A (zh) * | 2016-04-18 | 2016-09-21 | 中国科学院计算技术研究所 | 基于Hadoop的数据传输方法及系统 |
CN107172149A (zh) * | 2017-05-16 | 2017-09-15 | 成都四象联创科技有限公司 | 大数据即时调度方法 |
US10185752B2 (en) | 2014-09-29 | 2019-01-22 | International Business Machines Corporation | Mining association rules in the map-reduce framework |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080086442A1 (en) * | 2006-10-05 | 2008-04-10 | Yahoo! Inc. | Mapreduce for distributed database processing |
CN101770402A (zh) * | 2008-12-29 | 2010-07-07 | 中国移动通信集团公司 | MapReduce系统中的Map任务调度方法、设备及系统 |
-
2010
- 2010-11-24 CN CN2010105565132A patent/CN101996079A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080086442A1 (en) * | 2006-10-05 | 2008-04-10 | Yahoo! Inc. | Mapreduce for distributed database processing |
CN101770402A (zh) * | 2008-12-29 | 2010-07-07 | 中国移动通信集团公司 | MapReduce系统中的Map任务调度方法、设备及系统 |
Non-Patent Citations (1)
Title |
---|
TYSON CONDIE等: "MapReduce Online", 《TECHNICAL REPORT NO. UCB/EECS-2009-136 HTTP://WWW.EECS.BERKELEY.EDU/ PUBS/TECHRPTS/2009/EECS-2009-136.HTML》, 9 October 2009 (2009-10-09), pages 1 - 14 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710772A (zh) * | 2012-06-04 | 2012-10-03 | 包丽霞 | 一种基于云平台的海量数据通讯系统 |
CN102710772B (zh) * | 2012-06-04 | 2015-09-30 | 何春涛 | 一种基于云平台的海量数据通讯系统 |
CN102880510A (zh) * | 2012-09-24 | 2013-01-16 | 中国科学院对地观测与数字地球科学中心 | 基于多数据架构中心面向数据密集型应用的并行编程方法 |
CN103327128A (zh) * | 2013-07-23 | 2013-09-25 | 百度在线网络技术(北京)有限公司 | 用于MapReduce的中间数据传输方法及系统 |
WO2015014191A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 基于mapreduce模型的数据排序方法和系统 |
US10185752B2 (en) | 2014-09-29 | 2019-01-22 | International Business Machines Corporation | Mining association rules in the map-reduce framework |
US10467236B2 (en) | 2014-09-29 | 2019-11-05 | International Business Machines Corporation | Mining association rules in the map-reduce framework |
CN105955819A (zh) * | 2016-04-18 | 2016-09-21 | 中国科学院计算技术研究所 | 基于Hadoop的数据传输方法及系统 |
CN107172149A (zh) * | 2017-05-16 | 2017-09-15 | 成都四象联创科技有限公司 | 大数据即时调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101996079A (zh) | 一种基于管道通信的MapReduce编程框架运算方法 | |
US10778751B2 (en) | Method of micro-service transformation for power trading functions | |
CN110457123B (zh) | 一种区块处理任务的控制方法和装置 | |
CN102521038B (zh) | 基于分布式文件系统的虚拟机迁移方法和装置 | |
US10216588B2 (en) | Database system recovery using preliminary and final slave node replay positions | |
CN105868343B (zh) | 数据库迁移方法及系统 | |
CN106021016A (zh) | 在快照之间的虚拟时间点访问 | |
CN102033889A (zh) | 分布式数据库并行处理系统 | |
CN102710752B (zh) | 灾备存储系统 | |
CN108614876B (zh) | 一种基于Redis数据库的系统和数据处理方法 | |
CN104965850A (zh) | 一种基于开源技术的数据库高可用实现方法 | |
CN113987064A (zh) | 数据处理方法、系统及设备 | |
CN102033930A (zh) | 分布式内存数据库系统 | |
CN104778126A (zh) | 非易失性主存中事务数据存储优化方法及系统 | |
CN103019804B (zh) | OpenVZ虚拟化的VPS快速迁移方法 | |
CN105426427A (zh) | 基于raid 0 存储的mpp 数据库集群副本实现方法 | |
CN110083306A (zh) | 一种分布式对象存储系统及存储方法 | |
CN103500146A (zh) | 虚拟机磁盘存储数据迁移方法和系统 | |
CN101625703A (zh) | 一种内存数据库的日志合并方法和系统 | |
CN101945131A (zh) | 一种基于存储虚拟化的数据迁移方法 | |
CN102736594B (zh) | 一种智能配电终端统一平台模块化设计方法 | |
CN102541750A (zh) | 数据快照的实现方法和装置 | |
CN102820998B (zh) | 实现面向办公应用的双机容错服务系统及其数据存储方法 | |
CN103617195A (zh) | 一种用于MySQL数据库的数据同步系统和方法 | |
CN110597912B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110330 |