`
flyingdutchman
  • 浏览: 353746 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hadoop深入学习:Map Task和Reduce Task的执行流程

阅读更多
        本节我们主要看一下Map Task和Reduce Task的执行流程:


        好了,接下来我们再看看Map Task和Reduce Task的一个完整的执行流程:
        1)、TaskNode节点启动分配JobTracker个Map Task任务,启用InputFormat对象(具体为RecordReader)读取分配给本节点split分片,将每一行的数据读取成key/value键值对;
        2)、mapper程序的map()函数会接收key/value键值对的数据,做逻辑处理,然后将之输出;
        3)、(开始MapReduce的shuffle过程,该过程的性能的好坏可以直接决定MapReduce的性能。)mapper程序会将经处理过的key/value数据先加入该Task的环形的内存缓冲区,直到达到缓存达到阀值,然后会将数据spill到linux的本地磁盘上(注意,这些中间数据不会被保存到HDFS),生成一个磁盘文件;
        4)、mapper处理玩自己分片的数据后,会将磁盘上的所有spill文件合并;
        5)、当一个Map Task任务处理完后,TaskTracker节点会告诉JobTracker节点任务执行完毕并等待新的任务,然后JobTracker会告知reducer程序,区获取属于reducer自己的数据;
        (注:第3 - 5步是Map断的shuffle阶段。)
        6)、reducer通过多线程(默认为5个copy线程)开始到已执行完成的mapper节点上copy属于自己的partition数据;
        7)、reducer会先将copy的数据先放在本机的内存缓存中,合并拷贝数据,当缓存中放不下copy数据时,会将内丛中的的数据刷新到磁盘上,数据copy完成后,会将虽有数据合并成一个大文件,数据格式由原来的<key,value>变成<key,value list>;
        8)、将合并后的文件排序;
        (注:第6 - 8步是Map断的shuffle阶段。)
        9)、接下来reducer开始执行业务逻辑处理的reduce()方法,并将数据最终输出到HDFS上。
        10)、所有的Task都执行完成后,整个处理过程完成。
  • 大小: 93.4 KB
1
3
分享到:
评论
1 楼 licguo 2013-05-27  
正打算学习学习

相关推荐

    Hadoop从入门到上手企业开发

    近百节课视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,...064 源代码跟踪查看Map Task和Reduce Task数目的个数 065 回顾MapReduce执行过程以及MapReduce核心 066 Hadoop MapReduce框架数据类型讲解 067

    最新Hadoop的面试题总结

    (2)Merge阶段:在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。 (3)Sort阶段:按照MapReduce语义,用户编写reduce()函数输入数据是按...

    hadoop join implement

    Map/Reduce framework seems to be specifically designed for group-by aggregation tasks rather than across-table op- erations; on the other hand, join operation in distributed database systems was never...

    hadoop 1.2.1 api 最新chm 伪中文版

    通常,hadoop Map/Reduce框架和分布式文件系统是运行在一组相同的节点上的,也就是说,计算节点和存储节点通常在一起。这种配置允许框架在那些已经存好数据的节点上高效地调度任务,这可以使整个集群的网络带宽被...

    MapReduce详解包括配置文件

    MapReduce是Hadoop提供的一套用于进行分布式计算的模型,本身是Doug Cutting根据Google的&lt;MapReduce: Simplified Data Processing on Large Clusters&gt;...MapTask处理完数据之后,会将数据交给ReduceTask进行汇总。Red

    MapReduceV1:JobTracker端Job/Task数据结构

    在编写MapReduce程序时,我们是以Job为单位进行编程处理,一个应用程序可能由一组Job组成,而MapReduce框架给我们暴露的只是一些Map和Reduce的函数接口,在运行期它会构建对应MapTask和ReduceTask,所以我们知道一个...

    大数据学习(九):mapreduce编程模型及具体框架实现

    map reduce编程模型把数据运算流程分成2个阶段  阶段1:读取原始数据,形成key-value数据(map方法)  阶段2:将阶段1的key-value数据按照相同key分组聚合(reduce方法) mapreduce编程模型软件的具体实现:  hadoop中...

    java大数据作业_1云计算、大数据、hadoop

    课后作业 1.SAAS、PAAS、IAAS、XAAS都是什么意思?另外猜猜DAAS是什么意思? 2.大数据的4个特点是什么? 3.虚拟机与主机构成闭环局域网...Map Task Capacity Reduce Task Capacity Queue Name 10.如何启动一个datanode

    forcombiner_reduce_java_mapReduce_markizj_yourselfarq_源码

    Map Reduce中的Combiner就是为了避免map任务和reduce任务之间的数据传输而设置的,Hadoop允许用户针对map task的输出指定一个合并函数。即为了减少传输到Reduce中的数据量。它主要是为了削减Mapper的输出从而减少...

    Optimizing Hadoop for MapReduce(PACKT,2014)

    You will also learn about optimizing map and reduce tasks by using Combiners and compression. The book ends with best practices and recommendations on how to use your Hadoop cluster optimally. What...

    hadoop 权威指南(第三版)英文版

    hadoop权威指南第三版(英文版)。 Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Preface . . . . . . ....

    2018最新BAT大数据面试题.docx

    1)一个 MapReduce 作业由 Map 阶段和 Reduce 阶段两部分组成,这两阶段会对数据排序,从这个意义上说,MapReduce 框架本质就是一个 Distributed Sort。 2)在 Map 阶段,Map Task 会在本地磁盘输出一个按照 key ...

    hadoop_the_definitive_guide_3nd_edition

    Hadoop definitive 第三版, 目录如下 1. Meet Hadoop . . . 1 Data! 1 Data Storage and Analysis 3 Comparison with Other Systems 4 RDBMS 4 Grid Computing 6 Volunteer Computing 8 A Brief History of Hadoop 9...

    拥抱大数据——初识Hadoop,轻松应对海量数据存储与分析所带来的挑战

    4.1 Map+Reduce 4.2 MapReduce架构 4.3 MapReduce数据处理 4.3.1 job与task 4.3.2 MapReduce数据处理 五、YARN(资源管理系统) 5.1 YARN架构 六、手把手搭建Hadoop环境(Linux上) 6.1 安装jdk 6.2 安装hadoop 6.3

    HIVE查询优化

    1、设置合理的task数量(map task、reduce task) 这里有几个考虑的点,一方面Hadoop MR task的启动及初始化时间较长,如果task过多,可能会导致任务启动和初始化时间远超逻辑处理时间,这种情况白白浪费了计算资源...

    Scala基础(11) 运行基本流程及RDD

    Spark和Hadoop的比较 MapReduce Spark 数据存储结构:磁盘HDFS文件系统的split 使用内存构建弹性分布式数据集RDD,对数据进行运算和cache 编程范式:Map+Reduce DAG:Transformation+Action 计算中间结果...

    Storm实时计算:流操作入门编程实践

    Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比较简单,实际编程开发起来相对容易。...Task、ReduceTask),这一组计算组件可以按照DAG图的方式编排起来(通过选择Stream

    大数据平台常见面试题.pdf

    1、JobClient 会在⽤户端通过 JobClient 类将应⽤已经配置参数打包成 jar ⽂件存储到 hdfs,并把路径提交到 Jobtracker,然后由 JobTracker 创建每⼀个 Task(即 MapTask 和 ReduceTask)并将它们分发到各个 ...

Global site tag (gtag.js) - Google Analytics