《第7章 MapReduce概论ppt课件.ppt》由会员分享,可在线阅读,更多相关《第7章 MapReduce概论ppt课件.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在此输入您的封面副标题第7章 MapReduce概论 第7章MapReduce概论概论07导学了解 MapReduce的特征和局限性; MapReduce在医学领域的应用掌握 MapReduce的概念及内涵; Map和Reduce功能; MapReduce的架构和工作流程; Map和Reduce工作原理。 MapReduce用于对海量数据进行并行分析和处理。 MapReduce通过对数据的输入、拆分与组合,将任务分配到多个节点服务器上,进行分布式计算,有效提高数据管理的效率和安全性。7.1MapReduce简介 MapReduce是一个高性能分布式计算框架是一个高性能分布式计算框架。与传统的数
2、据库方法相比较,MapReduce倾向于通过简单、直接、有效的方式去处理海量数据。 MapReduce的核心功能有两个,即Map(映射)和(映射)和Reduce(化简)(化简)。 (1)Map:把一个函数应用于集合中的所有成员,然后生成一个结果集;:把一个函数应用于集合中的所有成员,然后生成一个结果集; (2)Reduce:将:将Map的处理结果集进行分类和归纳。的处理结果集进行分类和归纳。7.1.1MapReduce概念1MapReduce内涵内涵MapReduce的内涵如下:(1)MapReduce是一个基于集群的高性能并行计算平台。是一个基于集群的高性能并行计算平台。它允许用廉价服务器构
3、成一个高达数千个节点的计算集群。(2)MapReduce是一个并行计算的软件框架。是一个并行计算的软件框架。它提供了一个庞大且设计精良的并行计算软件框架,能自动完成任务的并行化处理,自动划分数据和任务,自动分配和执行任务以及收集结果。(3)MapReduce提供了一种简便的并行程序设计方法。提供了一种简便的并行程序设计方法。它用Map和Reduce两个函数实现基本的并行计算任务,为大数据的编程和计算提供了极大的方便。7.1.2 MapReduce内涵、特征和局限性2MapReduce特征特征 MapReduce可以进行数据划分、计算任务调度、系统优化及出错检测和恢复等操作,在设计上具有以下三方
4、面的特征:(1)易于使用)易于使用 MapReduce不仅能用于处理大规模数据,而且能将很多繁琐的细节隐藏起来,对于完全没有接触过分布式程序的程序员来说也能很容易的掌握。(2)良好的伸缩性)良好的伸缩性 在MapReduce框架中每增加一台服务器,就能将该服务器的计算能力接入到集群当中,能有效降低集群成本,提高整体的性价比。(3)适合大规模数据处理)适合大规模数据处理 MapReduce可以进行大规模数据处理,应用程序可以在1000个以上节点的大型集群上运行。7.1.2 MapReduce内涵、特征和局限性3MapReduce的局限性的局限性MapReduce存在的问题(其中的术语参见7.2节
5、):(1)Jobtracker 是Mapreduce的集中处理点,存在单点故障隐患。(2)Jobtracker 承担了过多的任务,内存开销过大,资源消耗严重,增加了Jobtracker 失败的风险。(3)在Tasktracker端,如果两个大内存消耗的Task 被调度到一起,很容易出现内存溢出。(4)底层源代码晦涩难懂,后期维护升级困难。(5)进行局部更新时,会强制进行系统级别的升级。7.1.2 MapReduce内涵、特征和局限性MapReduce采用了Master/Slave(主/从)架构,其架构如图。7.2MapReduce架构和工作流程JobTracker称为Master,TaskTr
6、acker称为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任务,并保持与Job
7、Tracker通信;(4)HDFS:用来在其他节点间共享作业文件。MapReduce的工作流程:7.2MapReduce架构和工作流程(1)MapReduce在客户端启动一个作业;(2)Client向JobTracker请求一个JobID;(3)Client将需要执行的作业资源复制到HDFS上;(4)Client将作业提交给JobTracker;(5)JobTracker在本地初始化作业;(6)JobTracker从HDFS作业资源中获取作业输入的分割信息,根据这些信息将作业分割成多个任务;(7)JobTracker把多个任务分配给在与JobTracker心跳通信中请求任务的TaskTrack
8、er;(8)TaskTracker接收到新的任务之后会首先从HDFS上获取作业资源,包括作业配置信息和本作业分片的输入;(9)TaskTracker在本地登录子JVM;(10)TaskTracker启动一个JVM并执行任务,并将结果写回HDFS。Map和Reduce的工作原理:7.3Map和Reduce工作原理(1)输入数据通过Split的方式,被分发到各个节点上;(2)每个Map任务在一个Split上进行处理;(3)Map任务输出中间数据;(4)在Shuffle过程中,节点之间进行数据交换;(5)拥有同样Key值的中间数据被送到同样的Reduce任务中;(6)Reduce执行任务后,输出结果
9、。提示:前4步为Map过程,后2步为Reduce过程。Word Count实例,如图7.3Map和Reduce工作原理 以“字词频率统计”为实例,在“语料库在线”网站上完成医学文献计量学中字词频率统计功能,加深读者对MapReduce的理解7.4 MapReduce在医学领域的应用(1)启动浏览器,访问网址,出现“语料库在线”网站的字词频率统计页面。7.4 MapReduce在医学领域的应用(2)在“文字内容”输入框中输入或粘贴医学文献文本。7.4 MapReduce在医学领域的应用(3)单击“字频统计”或“词频统计”按钮,实现按字频或词频统计,结果显示在右侧显示框内。7.4 MapReduc
10、e在医学领域的应用(4)单击“下载结果”按钮,将统计结果以.txt格式保存在磁盘上。小结 MapReduce是Hadoop最重要的组成模块之一。MapReduce由Map和Reduce两部分功能组成,在计算机集群上根据需求运行多个程序实例来处理各个子任务,然后再对结果进行归并输出。除了自行搭建 MapReduce物理集群外,用户还可以使用第三方提供的MapReduce服务(阿里云、百度云等),根据业务需求,自由搭建Hadoop集群,进行MapReduce计算和分析。 本章重点讲解了MapReduce的概念、功能、特征、架构、工作流程和原理等方面的知识。通过本章的学习,读者将会了解并掌握MapReduce的理论知识,为大数据方向的深入学习打下初步的基础。中国医科大学