- 1、本文档共87页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第4章分布式计算框架MapReduce《Hadoop大数据原理与应用》西安电子科技大学出版社
【知识与能力要求】
第4章分布式计算框架MapReduce4.1MapReduce简介4.2第一个MapReduce案例:WordCount4.3MapReduce作业执行流程4.4MapReduce数据类型与格式4.5Shuffle机制4.6在MapReduce中自定义组件4.7实战MapReduce4.8MapReduce调优4.9其他主流计算框架
4.1MapReduce简介移动计算比移动数据更划算Google论文分而治之
4.1MapReduce简介MapReduce是Hadoop生态中的一款分布式运算框架,它提供了非常完善的分布式架构,可以让不熟悉分布式计算的人员也能编写出优秀的分布式系统,因此可以让开发人员将精力专注到业务逻辑本身。MapReduce采用“分而治之”的核心思想,可以先将一个大型任务拆分成若干个简单的子任务,然后将每个子任务交给一个独立的节点去处理。当所有节点的子任务都处理完毕后,再汇总所有子任务的处理结果,从而形成最终的结果。
4.1MapReduce简介MapReduce在发展史上经过一次重大改变,旧版MapReduce(MapReduce1.0)采用的是典型的Master/Slave结构,Master表现为JobTracker进程,而Slave表现为TaskTracker。但是这种结果过于简单,例如Master的任务过于集中,并且存在单点故障等问题。因此,MapReduce进行了一次重要的升级,舍弃JobTracker和TaskTracker,而改用了ResourceManager进程负责处理资源,并且使用ApplicationMaster进程管理各个具体的应用,用NodeManager进程对各个节点的工作情况进行监听。升级后的MapReduce称为MapReduce2.0,但也许由于“MapReduce”这个词已使用太久,有些参考资料中经常使用“MapReduce”来代指YARN。YARN的具体组成结构和各部分的作用,会在第5章中进行详细介绍。
4.1MapReduce简介如果要统计一个拥有海量单词的词库,就可以先将整个词库拆分成若干个小词库,然后将各个小词库发送给不同的节点去计算,当所有节点将分配给自己的小词库中的单词统计完毕后,再将各个节点的统计结果进行汇总,形成最终的统计结果。节点3海量词库小词库小词库小词库统计部分单词统计全部单词Map阶段Reduce阶段节点1节点2统计部分单词节点4节点5
MapReduce计算模型MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce。MapReduce框架会为每个Map任务输入一个数据子集(split),Map任务生成的结果会继续作为Reduce任务的输入,最终由Reduce任务输出最后结果,并写入分布式文件系统。编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的程序运行在分布式系统上,完成海量数据的计算。
Map和Reduce函数键值对:key,valueStep1将数据抽象为键值对形式,接着map函数会以键值对作为输入,经过map函数的处理,产生一系列新的键值对作为中间结果输出到本地。Step2MapReduce框架自动将这些中间结果数据按照键做聚合处理,并将键相同的数据分发给reduce函数处理。Step3reduce函数以键和对应的值的集合作为输入,经过reduce函数处理后,产生另外一系列键值对作为最终输出。{key1,value1}→{key2,Listvalue2}→{key3,value3}
Map和Reduce函数函数输入输出说明Mapk1,v1如:行号,”abc”List(k2,v2)如:“a”,1“b”,1“c”,11.将小数据集进一步解析成一批key,value对,输入Map函数中进行处理2.每一个输入的k1,v1会输出一批k2,v2。k2,v2是计算的中间结果Reducek2,List(v2)如:“a”,1,1,1k3,v3“a”,3输入的中间结果k2,List(v2)中的List(v2)表示是一批属于同一个k2的value
4.2第一个MapReduce案例:WordCountHadoop提供了一个MapReduce入门案例“WordCount”,用于统计输入文件中每个单词出现的次数。该案例源码保存在$HADOOP_HOME/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.9.2.jar的WordCount.java中,
文档评论(0)