Hadoop核心由HDFS和MapReduce组成,HDFS负责分布式存储,MapReduce负责分布式计算。

MapReduce最早是由Google研究提出的一种面向大规模数据处理的并行计算模型和方法,其初衷主要是为了解决搜索引擎中大规模网页数据的并行化处理。由于MapReduce可以普遍应用于很多大规模数据的计算问题,Google进一步将其广泛应用于很多大规模数据处理问题。到目前为止,Google有上万个各种不同的算法问题和程序都使用MapReduce进行处理。在Google的论文中最初的关于MR的描述和编程模型如图所示。


在Hadoop生态中,MapReduce是构建在分布式文件系统之上,对存储在分布式文件系统中的数据进行分布式计算。正如其名称一样,MR的计算过程分为Map阶段和Reduce阶段,在中文中经常将其翻译为映射和规约。MR的架构在V1.x和V2.x差别较大,但基本都有Client、JobTracker、TaskTracker等主要组件,典型架构如图所示。

(1)Client
用户编写的MapReduce程序通过Client提交到JobTracker端;同时,用户可通过Client提供的一些接口查看作业运行状态。在Hadoop内部用“作业”(Job)表示MapReduce程序。一个MapReduce程序可对应若干个作业,而每个作业会被分解成若干个Map/Reduce任务(Task)。

(2)JobTracker
JobTracker主要负责资源监控和作业调度。JobTracker监控所有TaskTracker与作业的健康状况,一旦发现失败情况后,其会将相应的任务转移到其他节点;同时JobTracker会跟踪任务的执行进度、资源使用量等,并将这些信息告诉给任务调度器(Task Scheduler),而T调度器会在资源出现空闲时,选择合适的任务使用这些资源。在Hadoop中,任务调度器是一个可插拔的模块,用户可以根据自己的需要设计相应的Scheduler。

(3)TaskTracker
TaskTracker会周期性地通过Heartbeat将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker发送过来的命令并执行相应操作(如启动新任务、杀手任务等)。TaskTracker使用“slot”等量划分本节点上的资源量。“slot”代表计算资源(CPU、内存等)。一个Task获取到一个slot后才有机会运行,而Hadoop调度器的作用就是将各个TaskTracker上的空闲slot分配给Task使用。slot分为Map slot和Reduce slot两种,分别供Map Task和Reduce Task使用。TaskTracker通过slot数目(可配置参数)限定Task的并发度。

(4)Task
Task分为Map Task和Reduce Task两种,均由TaskTracker启动。我们知道,HDFS以固定大小的block为基本单位存储数据,而对于MapReduce而言,其处理单位是split。split是一个逻辑概念,它只包含一些元数据信息,比如数据起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。但需要注意的是,split的多少决定Map Task的数目,因为每个split会交由一个Map Task处理。

MapReduce计算任务执行的主要流程如图所示,Map过程将输入的键值对根据业务需求转换成新形式的键值对输出,Reduce过程对Map阶段输出的键值对列表进行规约整理,得到最终的输出结果。

分布式计算框架MapReduce架构相关推荐

  1. Hadoop技术(二)资源管理器YARN和分布式计算框架MapReduce

    资源管理器YARN和分布式计算框架MapReduce 第一章 Hadoop MapReduce 是什么 一 MapReduce 介绍 1. 基本介绍 2. MR数据流程方向 3. MR 原语/ 核心思 ...

  2. 【大数据入门笔记系列】第六节 分布式计算框架MapReduce的工作流程

    [大数据入门笔记系列]第六节 分布式计算框架MapReduce的工作流程 前言 MapReduce分布式运算 MapReduceApplication MapTask ReduceTask split ...

  3. 【MapReduce】分布式计算框架MapReduce

    分布式计算框架MapReduce 什么是MapReduce? MapReduce起源是2004年10月Google发表了MapReduce论文,之后由Mike Cafarella在Nutch(爬虫项目 ...

  4. 大数据理论与实践5 分布式计算框架MapReduce和Spark

    MapReduce和Spark MapReduce 简介 原理示例 基本概念 作业运行模式 Spark 简介 概念 编程模型 RDD RDD操作(Operator) RDD依赖(Dependency) ...

  5. 分布式计算框架——MapReduce

    一.MapReduce概述 Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序.编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集. MapReduce ...

  6. Hadoop大数据原理(3) - 分布式计算框架MapReduce

    文章目录 1. 大数据的通用计算 2 MapReduce编程模型 3. MapReduce计算框架 3.1 三类关键进程 大数据应用进程 JobTracker进程 TaskTracker进程 3.2 ...

  7. 史上最快! 10小时大数据入门实战(五)-分布式计算框架MapReduce

    目录 1 MapReduce概述 2 MapReduce编程模型之通过wordcount词频统计分析案例入门 MapReduce执行流程 InputFormat OutputFormat Output ...

  8. Hadoop分布式计算框架MapReduce

    一.MapReduce概述 &源自于Google的MapReduce论文,论文发表于2004年12月 &Hadoop MapReduce是Google MapReduce的克隆版 &a ...

  9. 谷歌分布式计算框架MapReduce论文2004 中文翻译

    MapReduce:超大机群上的简单数据处理                                             摘要 MapReduce是一个编程模型,和处理,产生大数据集的相关 ...

最新文章

  1. php pdo 判断数据条数据,PDO一次查询一行数据
  2. Sublime Text 3使用SublimeLinter配置JS,CSS,HTML语法检查
  3. 腾讯研发专家:TXSQL如何成为云计算时代数据库核弹头?
  4. redhat 添加ssh端口_RHEL 7修改ssh默认端口号
  5. Shell入门(六)之算术运算
  6. 推荐系统——GBDT+LR
  7. 通过注册表修改键盘映射
  8. 4am永远 鼠标按键设置_罗技G502 LIGHTSPEED无线游戏鼠标评测 性能超乎想象
  9. Code::Blocks下载及其汉化教程
  10. ubuntu 服务器 ip修改,修改Ubuntu server ip地址
  11. 医学系统(一)医院常用的软件系统:PACS系统、HIS系统、RIS系统、LIS系统、CIS系统
  12. 虚拟机linux删除文件后未释放空间,【Linux命令】删除大文件后磁盘空间未释放问题...
  13. 微型计算机硬件列表,微型计算机的硬件组成 | 学步园
  14. python3代码换行与不换行问题
  15. CrossWalk - Android 动态加载so库文件
  16. google 学术使用技巧
  17. uAvionix获得FAA合同,部署和演示多个无人机同时飞行的C波段频率分配管理(FAM)
  18. 一个区块链项目的40种死法 |链捕手
  19. 什么是大数据?大数据用来干嘛?
  20. 东南蒙纳士计算机复试,2016年东南大学——蒙纳士大学双硕士学位研究生复试通知...

热门文章

  1. [MATLAB]--数据插值(interp1/2多维插值)
  2. 回溯算法 允许重复选择元素的组合
  3. torch.repeat()与numpy.repeat()和 numpy.tile()比较
  4. Platform Builder
  5. linux的s权限和t权限
  6. springboot整合ehcache使用
  7. iOS二维码生成及扫码
  8. 在Linux下安装配置bochs,并成功跑一个简单的boot引导(超详细)
  9. 中值滤波(资料整理,持续更新)
  10. Android开发介绍