CN101996079A - 一种基于管道通信的MapReduce编程框架运算方法 - Google Patents

一种基于管道通信的MapReduce编程框架运算方法 Download PDF

Info

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
Application number
CN2010105565132A
Other languages
English (en)
Inventor
伍之昂
曹杰
王有权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Finance and Economics
Original Assignee
Nanjing University of Finance and Economics
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University of Finance and Economics filed Critical Nanjing University of Finance and Economics
Priority to CN2010105565132A priority Critical patent/CN101996079A/zh
Publication of CN101996079A publication Critical patent/CN101996079A/zh
Pending legal-status Critical Current

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编程框架运算方法
技术领域
本发明涉及云计算领域,具体说是一种云计算环境下基于管道通信的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任务发送。
CN2010105565132A 2010-11-24 2010-11-24 一种基于管道通信的MapReduce编程框架运算方法 Pending CN101996079A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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任务调度方法、设备及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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