分布式计算框架MapReduce架构
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架构相关推荐
- Hadoop技术(二)资源管理器YARN和分布式计算框架MapReduce
资源管理器YARN和分布式计算框架MapReduce 第一章 Hadoop MapReduce 是什么 一 MapReduce 介绍 1. 基本介绍 2. MR数据流程方向 3. MR 原语/ 核心思 ...
- 【大数据入门笔记系列】第六节 分布式计算框架MapReduce的工作流程
[大数据入门笔记系列]第六节 分布式计算框架MapReduce的工作流程 前言 MapReduce分布式运算 MapReduceApplication MapTask ReduceTask split ...
- 【MapReduce】分布式计算框架MapReduce
分布式计算框架MapReduce 什么是MapReduce? MapReduce起源是2004年10月Google发表了MapReduce论文,之后由Mike Cafarella在Nutch(爬虫项目 ...
- 大数据理论与实践5 分布式计算框架MapReduce和Spark
MapReduce和Spark MapReduce 简介 原理示例 基本概念 作业运行模式 Spark 简介 概念 编程模型 RDD RDD操作(Operator) RDD依赖(Dependency) ...
- 分布式计算框架——MapReduce
一.MapReduce概述 Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序.编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集. MapReduce ...
- Hadoop大数据原理(3) - 分布式计算框架MapReduce
文章目录 1. 大数据的通用计算 2 MapReduce编程模型 3. MapReduce计算框架 3.1 三类关键进程 大数据应用进程 JobTracker进程 TaskTracker进程 3.2 ...
- 史上最快! 10小时大数据入门实战(五)-分布式计算框架MapReduce
目录 1 MapReduce概述 2 MapReduce编程模型之通过wordcount词频统计分析案例入门 MapReduce执行流程 InputFormat OutputFormat Output ...
- Hadoop分布式计算框架MapReduce
一.MapReduce概述 &源自于Google的MapReduce论文,论文发表于2004年12月 &Hadoop MapReduce是Google MapReduce的克隆版 &a ...
- 谷歌分布式计算框架MapReduce论文2004 中文翻译
MapReduce:超大机群上的简单数据处理 摘要 MapReduce是一个编程模型,和处理,产生大数据集的相关 ...
最新文章
- php pdo 判断数据条数据,PDO一次查询一行数据
- Sublime Text 3使用SublimeLinter配置JS,CSS,HTML语法检查
- 腾讯研发专家:TXSQL如何成为云计算时代数据库核弹头?
- redhat 添加ssh端口_RHEL 7修改ssh默认端口号
- Shell入门(六)之算术运算
- 推荐系统——GBDT+LR
- 通过注册表修改键盘映射
- 4am永远 鼠标按键设置_罗技G502 LIGHTSPEED无线游戏鼠标评测 性能超乎想象
- Code::Blocks下载及其汉化教程
- ubuntu 服务器 ip修改,修改Ubuntu server ip地址
- 医学系统(一)医院常用的软件系统:PACS系统、HIS系统、RIS系统、LIS系统、CIS系统
- 虚拟机linux删除文件后未释放空间,【Linux命令】删除大文件后磁盘空间未释放问题...
- 微型计算机硬件列表,微型计算机的硬件组成 | 学步园
- python3代码换行与不换行问题
- CrossWalk - Android 动态加载so库文件
- google 学术使用技巧
- uAvionix获得FAA合同,部署和演示多个无人机同时飞行的C波段频率分配管理(FAM)
- 一个区块链项目的40种死法 |链捕手
- 什么是大数据?大数据用来干嘛?
- 东南蒙纳士计算机复试,2016年东南大学——蒙纳士大学双硕士学位研究生复试通知...
热门文章
- [MATLAB]--数据插值(interp1/2多维插值)
- 回溯算法 允许重复选择元素的组合
- torch.repeat()与numpy.repeat()和 numpy.tile()比较
- Platform Builder
- linux的s权限和t权限
- springboot整合ehcache使用
- iOS二维码生成及扫码
- 在Linux下安装配置bochs,并成功跑一个简单的boot引导(超详细)
- 中值滤波(资料整理,持续更新)
- Android开发介绍