第7章 MapReduce概论课件_第1页
第7章 MapReduce概论课件_第2页
第7章 MapReduce概论课件_第3页
第7章 MapReduce概论课件_第4页
第7章 MapReduce概论课件_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据技术与应用

计算机中心第7章

MapReduce概述导学

一、内容与要求1.了解MapReduce的功能、技术特征和局限。2.了解Map(映射)与Reduce(化简)的原理和流程3.掌握MapReduce架构和工作流程二、重点、难点重点:Map和Reduce的原理和流程。难点:MapReduce的功能、技术特征、架构和工作流程。7.1MapReduce简介7.1.1MapReduceMapReduce是面向大数据并行处理的计算模型、框架和平台。它隐含了以下三层含义:(1)MapReduce是一个基于集群的高性能并行计算平台。(2)MapReduce是一个并行计算与运行软件框架。(3)MapReduce是一个并行程序设计模型与方法。7.1MapReduce简介7.1.1MapReduce举例:“统计54张扑克牌中有多少张♠?”最直观的做法:你自己从54张扑克牌中一张一张地检查并数出13张♠。而MapReduce的做法及步骤如下:1.给在座的所有牌友(比如4个人)尽可能的平均分配这54张牌;2.让每个牌友数自己手中的牌有几张是♠,比如老张是3张,老李是5张,老王是1张,老蒋是4张,然后每个牌友把♠的数目分别汇报给你;3.你把所有牌友的♠数目加起来,得到最后的结论:一共13张♠。这个例子告诉我们,MapReduce的两个主要功能是Map和Reduce。Map:把统计♠数目的任务分配给每个牌友分别计数。

Reduce:每个牌友不需要把♠牌递给你,而是让他们把各自的♠数目告诉你。7.1MapReduce简介7.1.2MapReduce功能、特征和局限性1.MapReduce功能MapReduce实现了两个功能,Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集;Reduce是对多个进程或者独立系统并行执行,将多个Map的处理结果集进行分类和归纳。MapReduce功能示意图7.1MapReduce简介7.1.2MapReduce功能和技术特征2.MapReduce技术特征(1)易于使用MapReduce将程序员与系统层细节隔离开来,即使是对于完全没有接触过分布式程序的程序员来说也能很容易的掌握。(2)良好的伸缩性

每增加一台服务器,就能将该服务器的计算能力接入到集群中。并且MapReduce集群的构建大多选用价格便宜、易于扩展的低端商用服务器。(3)大规模数据处理

应用程序可以通过MapReduce在超过1000个以上节点的大型集群上运行。7.1MapReduce简介7.1.2MapReduce功能和技术特征3.MapReduce的局限性(1)Jobtracker是Mapreduce的集中处理点,存在单点故障。(2)Jobtracker完成了太多的任务,造成了过多的资源消耗。(3)在Tasktracker端容易出现内存溢出。(4)在Tasktracker端,会造成资源的浪费。(5)源代码层面分析的时候,会发现代码非常的难读。(6)从操作的角度来看,MapReduce在例如Bug修复、性能提升和特性化等并不重要的系统更新时,都会强制进行系统级别的升级。7.2Map和Reduce任务Map和Reduce的工作流程及步骤简单概括如下:1.输入数据通过Split的方式,被分发到各个节点上(Split意为分片,是Map任务最小的输入单位。分片是基于文件基础上衍生出来的概念,可通俗的理解成一个文件可以切分为多少个片段,每个片段包括了<文件名,开始位置,长度,位于哪些主机>等信息);2.每个Map任务在一个Split上面进行处理;3.Map任务输出中间数据;4.在Shuffle过程中,节点之间进行数据交换(Shuffle意为洗牌,一般包含本地化混合、分区、排序、复制及合并等);5.拥有同样Key值的中间数据即键值对(Key-ValuePair)被送到同样的Reduce任务中(键值对是指Key和Value之间的映射关系,一个Key值对应一个Value,其中Value的类型和取值范围等都是任意的);6.Reduce执行任务后,输出结果。提示:前4步为Map过程,后2步为Reduce过程。7.2Map和Reduce任务Map与Reduce任务

以求东三省2016年5月16日14:00每个省份的平均气温为例(为使问题简化,每个省只列举三个城市),对Map任务和Reduce任务进行形象的阐述。(具体步骤见教材)总结,MapReduce对数据的重塑过程:1.Map输入<K1,V1>Map输出<K2,V2>;2.Shuffle输出<K2,ListV2>;3.Reduce输入<K2,List<V2>>Reduce输出<K3,V3>。7.3MapReduce架构和工作流程7.3.1MapReduce的架构MapReduce架构图

MapReduce采用了Master/Slave(主/从)架构。JobTracker称为Master,TaskTracker称为Slave。

用户提交的需要计算的作业称为Job(作业),每一个Job会被划分成若干个Tasks(任务)。

JobTracker负责Job和Tasks的调度,而TaskTracker负责执行Tasks。MapReduce架构由4个独立的节点(Node)组成,分别为Client、JobTracker、TaskTracker和HDFS,分别介绍如下:(1)Client:用来提交MapReduce作业;(2)JobTracker:用来初始化作业、分配作业并与TaskTracker通信并协调整个作业;(3)TaskTracker:将分配过来的数据片段执行MapReduce任务,并保持与JobTracker通信;(4)HDFS:用来在其他节点间共享作业文件。7.3MapReduce架构和工作流程7.3.2MapReduce工作流程MapReduce的工作流程可简单概括为10个工作步骤:1.MapReduce在客户端启动一个作业;2.Client向JobTracker请求一个JobID;3.Client将需要执行的作业资源复制到HDFS上;4.Client将作业提交给JobTracker;5.JobTracker在本地初始化作业;6.JobTracker从HDFS作业资源中获取作业输入的分割信息,根据这些信息将作业分割成多个任务;7.JobTracker把多个任务分配给在与JobTracker心跳通信中请求任务的TaskTracker;8.TaskTracker接收到新的任务之后会首先从HDFS上获取作业资源,包括作业配置信息和本作业分片的输入;9.TaskTracker在本地登录子JVM;10.TaskTracker启动一个JVM并执行任务,并将结果写回HDFS。本章小结MapReduce是Hadoop最重要的组成模块之一。MapReduce由Map和Reduce两部分用户程序组成,利用框架在计算机集群上根据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论