`
chillicat
  • 浏览: 44608 次
  • 性别: Icon_minigender_1
  • 来自: tianwai
社区版块
存档分类
最新评论

分布式并行编程模型MapReduce简介

阅读更多

MapReduce编程模型简介


MapReduce编程模型由google公司Jeffery Dean等人设计,用于在分布式并行环境中处理海量数据的计算。它将一个任务分解成更多份细粒度的子任务,这些子任务在空闲的处理节点之间被调度和快速处理之后,最终通过特定的规则进行合并生成最终的结果,其处理模型有点类似于传统编程模型中的[分解和归纳]方法。
MapReduce模型将分布式运算抽象成Map和Reduce两个步骤,从而实现高效的分布式应用。其中Map步骤负责根据用户输入的Key-Value pair生成中间结果,中间结果同样采用Key-Value pair的形式。Reduce步骤则将所有的中间结果根据Key进行合并,然后生成最终结果。而开发人员需要做的就是实现自己的Map和Reduce函数逻辑,然后提交给MapReduce运行环境,比如说现在的开源分布式并行编程框架Hadoop.
MapReduce运行环境一般由两种不同类型的节点组成,分别是负责数据处理的Worker节点,负责任务调度以及各节点间数据共享管理的Master节点。具体的执行流程如下(附件):

计算模型的核心是 Map 和 Reduce 两个函数,这两个函数由用户负责实现,功能是按一定的映射规则将输入的 <key, value> 对转换成另一个或一批 <key, value> 对输出。 
Map 和 Reduce 函数
函数 输入 输出 说明
Map <k1, v1> List(<k2,v2>) 1. 将小数据集进一步解析成一批 <key,value> 对,输入 Map 函数中进行处理。
2. 每一个输入的 <k1,v1> 会输出一批 <k2,v2>。 <k2,v2> 是计算的中间结果。
Reduce <k2,List(v2)> <k3,v3> 输入的中间结果 <k2,List(v2)> 中的 List(v2) 表示是一批属于同一个 k2 的 value
以一个计算文本文件中每个单词出现的次数的程序为例,<k1,v1> 可以是 <行在文件中的偏移位置, 文件中的一行>,经 Map 函数映射之后,形成一批中间结果 <单词,出现次数>, 而 Reduce 函数则可以对中间结果进行处理,将相同单词的出现次数进行累加,得到每个单词的总的出现次数。
基于 MapReduce 计算模型编写分布式并行程序非常简单,程序员的主要编码工作就是实现 Map 和 Reduce 函数,其它的并行编程中的种种复杂问题,如分布式存储,工作调度,负载平衡,容错处理,网络通信等,均由 MapReduce 框架(比如 Hadoop )负责处理,程序员完全不用操心。

 

  • 大小: 34.7 KB
1
0
分享到:
评论

相关推荐

    分布式并行编程模型MapReduce及其应用研究.pdf

    #资源达人分享计划#

    MapReduce_新型的分布式并行计算编程模型_李成华.pdf

    MapReduce是Google提出的分布式并行计算编程模型,用于大规模数据的并行处理。Ma-pReduce模型受函数式编程语言的启发,将大规模数据处理作业拆分成若干个可独立运行的Map任务,分配到不同的机器上去执行,生成某种格式的...

    Hadoop与MapReduce分布式并行编程简介

    Hadoop 实现了 MapReduce 计算模型的开源分布式并行编程框架,有自己的分布式文件系统hdfs,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算,目前由yahoo全力资助...

    论文研究-基于MapReduce编程模型的分布式并行计算系统的设计和实现 .pdf

    基于MapReduce编程模型的分布式并行计算系统的设计和实现,何皓星,李昕,大数据处理技术对互联网应用本身和企业都具有非常重大的意义。随着互联网业务数量的快速增长,系统中积累的数据也越来越多。如何

    用_Hadoop_进行分布式并行编程

    Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。本文将介绍 MapReduce 计算模型,分布式并行...

    用 Hadoop 进行分布式并行编程

    Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。本文将介绍 MapReduce 计算模型,分布式并行...

    02.分布式计算模型MapReduce.pptx

    它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来...

    厦门大学大数据技术原理与应用

    •系统地论述了大数据的基本概念、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、流计算、图计算、数据可视化以及大数据在互联网、生物医学...

    教学大纲厦门大学-林子雨-大数据技术原理与应用

    课程将系统讲授大数据的基本概念、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数据库HBase、NoSQL数据库、云数据库、分布式并行编程模型MapReduce、流计算、图计算、数据可视化以及大数据在互联网、生物医学...

    论文研究-Hadoop云平台MapReduce模型优化研究.pdf

    从提高平台中每个执行节点的细粒度并行数据处理角度出发,结合Java共享内存多线程编程技术,对该模型进行了优化,提出一种MapReduce OpenMP粗细粒度相结合的分布式并行计算模型。并在由四个节点组成的Hadoop集群环境...

    MapReduce详解

    他极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(化简)函数,用来...

    mapreduce_reduce_mapReduce_settingn2p_

    它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来...

    KNN分类算法的MapReduce并行化实现1

    摘要:为了提高k-nearestneighboralgorithm(KNN)算法处理大数据集的能力,本文利用MapReduce并行编程模型,同时结合KNN算法自

    6-MapReduce.ppt

    MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce,并极大地方便了分布式编程工作,编程人员在不会分布式并行编程的情况下,也可以很容易将自己的程序运行在分布式系统上,...

    mapreduce模板.txt

    它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来...

    Google云计算简介.doc

    Google云计算技术具体包括:Google 文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby和分布式结构化数 据存储系统Bigtable等。其中,GFS提供了海量数据的存储和访问的能力,MapReduce使 得海量信息的...

    Mapreduce.pptx

    它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证...

    基于星火的高光谱数据的分布式并行端元提取

    所提出的方法利用MapReduce编程模型,Hadoop分布式文件系统(HDFS)和Apache Spark等技术来实现分布式并行实现以实现高光谱端成员提取,从而显着加快了高光谱处理的计算速度,并提供了对大型高光谱数据的高吞吐量...

    深入理解大数据--大数据并行处理与编程实践

    ■ Hadoop MapReduce并行编程模型、框架与编程接口 ■ 分布式数据表HBase ■ 分布式数据仓库Hive ■ Intel Hadoop系统优化与功能增强 ■ MapReduce 基础算法程序设计 ■ MapReduce高级程序设计技术 ■ MapReduce机器...

    Hadoop2.x安装包

    Hadoop是一个分布式系统基础框架,它的核心部分是HDFS和MapReduce。HDFS是基于流数据访问模式的分布式文件系统,支持海量数据的存储;MapReduce是分布式并行编程模型,用于进行大数据量的计算。

Global site tag (gtag.js) - Google Analytics