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

Hadoop中Map任务的执行框架

阅读更多

在这博文章中(http://www.linuxidc.com/Linux/2012-01/50854.htm),我重点讲述了Task被TaskTracker调度执行的原理及过程,但是在详细的介绍执行Task的过程细节之前,我想先来认真的讨论一下Map Task和Reduce Task的执行框架。当然本文主要集中在Map Task上,至于Reduce Task的相关内容,我会在下一篇博文中谈到。在这篇文章中,我将尽量给出一个最抽象的Map模型

Hadoop的MapRduce中,Map任务最重是交给Map任务执行器org.apache.hadoop.mapreduce.Mapper来执行的,在底层必定会采用JDK的泛型编程的。还是来了解一下与Map任务执行器相关的Mapper类吧。

对于上面与Map任务执行框架相关的类,我想我不得不详细的解释一下。任何Map任务在Hadoop中都会被一个MapTask对象所详细描述,MapTask会最终调用Mapper的run方法来执行它对应的Map任务,当然Mapper要执行Map任务,就必须要有相关的所有输入输出信息,而这些信息都包含在了Map任务对应的Context中了,也就是说Mapper从Context中获得一系列的输入数据记录,然后又将这些处理后的记录写入Context中,同时输入、输出的数据格式都是交由用户来实现/设置的。那么,Context的输入数据有来自哪个地方,又将处理后的数据写往何处呢?其实,Context是通过RecordReader来获取输入数据,通过RecordWriter保存被Mapper处理后的数据。至此,Map任务的真个执行框架我们可以这样来抽象:

关于上面我抽象出来的这个Map任务执行框架,还需要补充的是,在Map任务对应的上下文执行环境Context中有个任务报告器TaskReporter,它被用来不断的向这个Map任务的TaskTracker报告任务的执行进度(这个精度只是一个估计值,不一定很准确)。另外,有人可能会问这个Map任务的输入文件和结果输出文件的有关信息Context是如何获悉的?其实,Map任务的输入文件文件保存在InputSplit中,这个InputSplit保存了文件的路径、范围、位置;Map任务的输出文件信息是在执行过程中动态生成的,因为Map任务的结果输出实际上就是Reduce任务的输入,它相当于只是全局作业中的一个中间过程,所以这个Map任务的输出结果的保存对于用户来说是透明的,而用户往往也只关心Reduce任务的最后汇总结果。

下面再来看看这个框架具体的执行步骤:

本文所介绍的只是抽象的Map任务执行框架,至于MapReduce内部是如何具体实现的,我还会在以后进行详细的阐述。(上文都是本人的一些个人见解,若有不当或错误之处尽请指出,以便帮助我学习进步,谢谢!)

分享到:
评论

相关推荐

    hadoop 1.2.1 api 最新chm 伪中文版

    一个Map/Reduce 作业(job) 通常会把输入的数据集切分为若干独立的数据块,由 map任务(task)以完全并行的方式处理它们。框架会对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实战(第2版)

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

    Hadoop实战中文版.PDF

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

    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 相同程序在...

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

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

    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 技术点...

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

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

    大数据之运维.pptx

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

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

    Spark 提供了与Hadoop Map/Reduce 相似的分布式计 算框架,但却有基于内存和迭代优化的设计,因此在交互式数据分析和数据挖掘工作负载中表现更优秀。 随着对大数据技术研究的深入,Spark开源生态系统得到了快速发展...

    MapReduce实例浅析

    HadoopMap/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。一个Map/Reduce作业(job)通常会把输入的数据集...

    Mapreduce#文档.docx

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

    大数据基础知识入门.pdf

    Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制,因此 Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark 优点: 运行速度快:使用DAG执行引擎以支持循环数据流...

    MapReduce并行模型ž‹.pdf

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

    大数据时代银行业的机遇与挑战.docx

    Hadoop通过计算移动到集群中的各个节点,在各个节点进行并行计算任务(Map阶段),产生结果后将集群中各节点的数据汇总反馈至客户端(Reduce阶段)。 (2)Hive Hive是Facebook开源的基于Hadoop的数据仓库平台。通过...

Global site tag (gtag.js) - Google Analytics