`
younglibin
  • 浏览: 1194562 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop中Reduce任务的执行框架

 
阅读更多

在前面的一系列文章中我主要围绕Hadoop对Map任务执行框架的设计与实现展开了详细的讨论,记得在博文Hadoop中Map任务的执行框架( 见  http://www.linuxidc.com/Linux/2012-01/50853.htm )中说过还要为大家详细地描述Hadoop对Reduce任务执行框架的设计,那么在本文,我将兑现这个承诺。

     其实,Hadoop中Reduce任务执行框架跟它的Map任务执行框架大致是很相似的,唯一的不同之处就是他们的数据输入来源、数据输出目的地不一样而已。总的说来,Map任务的输入数据来源于HDFS,最后的结果输出分布在每一个执行map任务的机器节点本地文件系统上,而Reduce任务的数据来源于每一个执行map任务的机器节点本地文件系统,它的最终结果存放在作业设置的HDFS某个目录下。

     在这里我想简单的讨论一下为什么map任务的输出要保存到各自执行节点的本地文件系统,而不是hadoop所依赖的某一个分布式文件系统(如HDFS)?现在假如说map任务的结果输出被保存到了HDFS上了,这样的话,所有的map输出就在网络上移动了一次,当开始执行某一个reduce任务的时候,它会从HDFS上去取输入数据,尽管Hadoop的任务调度器总是最大努力将reduce任务交给有map输出结果的机器节点(也就是执行过它的map任务的机器节点),但在绝大多数情况下总会存在一些reduce任务需要的输入数据有部分不再本地,从而去HDFS上取,最后导致有些map任务的输出结果在网络上移动了两次;如果将map任务的输出结果就放在它的本地文件系统,那么当某一个reduce开始执行之前,它需要从每一个机器节点的本地文件系统上取属于它的map输出数据,最终所有的map结果数据在网络上只移动了一次。同时,在这里就可以解释为什么要在map任务中进行合并,对map的输出进行合并可以大大较少最后的输出,一方面减轻了reduce的工作负载,另一方面也减少了reduce执行时数据移动的消耗。

      还是来看看Hadoop是如何来设计Reduce任务执行框架的:

 


    

 

      关于Hadoop的Reduce任务执行框架的具体流程大体同Map,在这里我就不再赘述了,有兴趣的盆友可以参看我的另一篇博文:Hadoop中Map任务的执行框架。不过,与Map略微的不同之处就是构造数据记录读取器的数据来源,reduce需要先从其它机器节点的本地文件系统中copy下来,至于reduce是如何copy这些数据的,这其中又用了什么网络协议,我会在以后的文章中作详细的阐述,不过有一点我提一下,reduce从map节点copy下来的数据会根据当前节点的内存情况把它们放到内存或本地磁盘中。

     到这里,我已经分析了Hadoop中整个Map-Reduce模型的设计,现在我先把这两个模型组合起来,好让大家能够跟清楚地了解Hadoop是如何对一个提交的作业进行map-reduce处理的。这个演示过程如下:

分享到:
评论

相关推荐

    hadoop 1.2.1 api 最新chm 伪中文版

    框架会对map的输出先进行排序, 然后把结果输入给reduce任务。通常作业的输入和输出都会被存储在文件系统中。 整个框架负责任务的调度和监控,以及重新执行已经失败的任务。 通常,hadoop Map/Reduce框架和分布式...

    Hadoop实战中文版

    《Hadoop实战》作为云计算所青睐的分布式架构,Hadoop是一个用Java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,是谷歌实现云计算的重要基石。《Hadoop实战》分为3个部分,深入浅出地...

    Hadoop权威指南 第二版(中文版)

     任务执行环境 第7章 MapReduce的类型与格式  MapReduce的类型  默认的MapReduce作业  输入格式  输入分片与记录  文本输入  二进制输入  多种输入  数据库输入(和输出)  输出格式  文本输出  二进制...

    Hadoop权威指南(中文版)2015上传.rar

    任务执行环境 第7章 MapReduce的类型与格式 MapReduce的类型 默认的MapReduce作业 输入格式 输入分片与记录 文本输入 二进制输入 多种输入 数据库输入(和输出) 输出格式 文本输出 二进制输出 多个输出 延迟输出 ...

    EasyHadoop实战手册

    1.Hadoop,Apache开源的分布式框架。2.HDFS,hadoop的分布式文件系统3....6.TaskTracker,hadoop调度程序,负责Map,Reduce 任务的具体启动和执行。7.Fuse,多文件系统内核程序,可将不同的文件系统mount成linux可读写模式

    Hadoop实战中文版.PDF

    人民邮电出版社出版时间:2011年10月版次:1.1开本:16开装帧:平装字数:417千字页数:253页内容简介编辑作为云计算所青睐的分布式架构,Hadoop是一个用Java语言实现的软件框架,在由大量计算机组成的集群中运行...

    Hadoop实战(第2版)

    技术点41 内存交换技术点42 磁盘健康技术点43 网络6.3 可视化技术点44 提取并可视化任务执行时间6.4 优化 .6.4.1 剖析MapReduce 的用户代码 技术点45 剖析map 和reduce 任务 6.4.2 参数配置6.4.3...

    Hadoop实战

    第一部分 Hadoop——一种分布式编程框架第1章 Hadoop简介 21.1 为什么写《Hadoop 实战》 31.2 什么是Hadoop 31.3 了解分布式系统和Hadoop 41.4 比较SQL数据库和Hadoop 51.5 理解MapReduce 61.5.1 动手扩展一个简单...

    Hadoop实战(陆嘉恒)译

    Hadoop——一种分布式编程框架第1 章 Hadoop简介1.1 为什么写《Hadoop 实战》1.2 什么是Hadoop1.3 了解分布式系统和Hadoop1.4 比较SQL 数据库和Hadoop1.5 理解MapReduce1.5.1 动手扩展一个简单程序1.5.2 相同程序在...

    Hadoop海量网络数据处理平台的关键技术

    然后本文结合集群节点的性能指标对Reduce任务分配算法和推测性任务执行机制进行改进,实现集群可以动态选择最佳节点来运行数据处理任务。实验结果表明该算法可以有效地提高异构集群数据处理性能和集群的稳定性,减少...

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    技术点44 提取并可视化任务执行时间 6.4 优化 . 6.4.1 剖析MapReduce 的用户代码 技术点45 剖析map 和reduce 任务 6.4.2 参数配置 6.4.3 优化 shuffle 和 sort 阶段 技术点46 避免reducer 技术点...

    Fourinone分布式并行计算四合一框架

    于是我将自己对分布式的理解融入到这个框架中,考虑到底层实现技术的相似性,我将Hadoop,Zookeeper,MQ,分布式缓存四大主要的分布式计算功能合为一个框架内,对复杂的分布式计算应用进行了大量简化和归纳。...

    大数据之运维.pptx

    Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。 高容错性。...

    大数据平台构建:YARN的重要概念.pptx

    基于槽位的资源分配模型,槽位是一种粗粒度的资源划分单位,通常一个任务不会用完一个槽位的资源,hadoop1分为map slot和reduce slot,而它们之间资源不共享,造成一些资源空闲。 Yarn的诞生背景 一、什么是Yarn ...

    大数据-Inceptor技术白皮书.pdf

    但由于复杂的工作流通常需 要多个阶段的Map/Reduce任务,而Map/Reduce的输入输出必须经过低速磁盘,导致运行复杂迭代任务时非常 低效,因此不适合对延时要求高的交互式分析或者需要复杂迭代的数据分析任务。...

    Mapreduce#文档.docx

    初识 MapReduce 1 . MapReduce 计算模型介绍 1.1. .... MapReduce 思想在生活...系统层细节被隐藏起来,交给计算框架去处理:从分布代码的执行,到大到数千小 到单个节点集群的自动调度使用。 等。。。。。初级教程

    MapReduce实例浅析

    框架会对map的输出先进行排序,然后把结果输入给reduce任务。通常作业的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。通常,Map/Reduce框架和分布式文件系统是...

    research-pse:部分投机执行

    在标准的 MapReduce 框架中,推测性任务从头开始做与原始任务相同的工作。 这种我们称之为完全推测执行 (FSE) 的从头开始的执行有几个缺点。 首先,推测映射任务必须重新读取输入数据,这会增加 I/O 成本,因为输入...

    MapReduce并行模型ž‹.pdf

    - 如一复杂或计算量大的任务,单台服务器无法胜任时,可将此大任务切分成一个个小的任务,小任务分别在不同的服务器上**并行**的执行;最终再汇总每个小任务的结果 - MapReduce由两个阶段组 成:Map阶段(切分成一个...

Global site tag (gtag.js) - Google Analytics