- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MapReduce分布式编程MapReduce distributed programming主讲人目录MapReduce简介词频统计编程实例MapReduce Shuffle 过程开发MapReduce的性能优化YARN数据处理框架MapReduce实战:绘制频度分布MapReduce简介1MapReduce简介MapReduce是一个分布式计算的编程框架,用于大规模数据集的并行处理。MapReduce将一个数据处理过程拆分为Map和Reduce两部分:Map表示映射,负责数据的过滤、分发;Reduce表示规约,负责数据的计算、归并。MapReduce把对数据集的大规模操作分发到计算节点,计算节点会周期性地返回其工作的最新状态和结果。如果计算节点沉默时间超过预设时间,主节点则默认该节点为宕机状态,把已分配给该节点的数据分发到其他节点重新计算,从而实现数据处理任务的自动调度。MapReduce分布式编程Hadoop支持多种语言进行MapReduce分布式编程,包括Java、Ruby、Python和C++等。采用Java语言进行的MapRedcue分布式编程流程如右图所示,可以分成六个流程。Map 程序和Reduce程序的输入和输出都是以键值对的形式出现的,map( )方法的输出和reduce( )方法的输入的键值对格式必须一致,MapReduce的调度程序完成Map程序和Reduce程序间的数据传递。MapReduce分布式编程流程词频统计编程实例2词频统计编程实例在Hadoop集群运行一个WordCount程序来统计输入文件中单词出现的次数(词频)。WordCount程序包含3个部分,分别为:编译一个WordCount.java程序,该程序将在Hadoop集群中运行。把在HDFS中处理的文件进行上传。运行WordCount.java程序并查看结果。WordCount.java程序MapReduce Shuffle过程开发3分拣(Shuffle)过程 通过之前的学习我们知道,Hadoop框架使用Mapper将数据处理成键值对,然后在网络节点间对其进行整理,通过Reducer处理后最终输出。数据整理的中间过程即分拣(Shuffle)过程,主要涉及分区(Partition)、排序(Sort)、合并(Combine)。通过Shuffle过程,可以有效地降低在网络间传输的数据量,提高程序的执行效率。MapReduce数据类型 MapReduce运算将完成的Mapper的计算结果发送给Reducer,Reducer收到任务后进行规约计算。Map任务和Reduce任务多分布在不同的计算节点上,这就要求在网络上传递可序列化的Java对象。对象序列化是指把Java对象转化成字节序列的过程,反序列化是指把字节序列转化成Java对象的过程。Hadoop重新定义了Java中常用的数据类型,如右表所示,并让它们具有序列化的特点。Hadoop定义的MapReduce数据类型与Java基本类型的对照Partitioner负载平衡编程 在Hadoop的MapReduce过程中,Mapper完成数据处理后,会把数据发送到Partitioner,由Partitioner来决定每条记录应该送往哪个Reducer节点。MapReduce默认的Partitioner是HashPartitioner。 getPartition( )的输入参数就是Mapper输出的key和value,然后针对这样的输入,Partitioner先计算key的散列值,然后根据Reducer个数执行取模运算。Sort排序编程 MapReduce默认的Partitioner是HashPartitioner。Mapper的输出结果在写入磁盘前,会进行二次快速排序。首先根据数据所属的Partitioner排序,然后每个Partitioner按key排序。 如果key的类型是用户自定义的类型,并没有默认的比较函数时,就需要自己定义key的比较函数,也就是继承WritableComparator。 通过上述代码我们发现,自定义TextComparator类继承WritableComparator基类,重写了compare( )方法。Combiner减少中间数据编程 通过使用Combiner可以使MapReduce整体性能得到提升。Combiner可以从根本上优化和最小化键值对的数量。因为键值对是通过网络在Mapper和Reducer之间传输的,所以Combiner可以降低网络传输负载。Combiner在词频统计中的使用十分简单,我们并不需要修改之前的词频统计源码,只需在主方法main( )中添加如下代码: job.setCombinerClass(MyReducer.class);即通过job设置Co
您可能关注的文档
- 第七章 开发商视角:ERP 设计与定制.pptx
- 第三章 ERP系统的业务集成.pptx
- 第四章 ERP 实施与运行.pptx
- 第五章 用户视角:需求驱动与规划实施.pptx
- 第八章 监理视角: ERP 项目管控与评价.pptx
- 第二章 ERP基本原理.pptx
- 第六章 顾问视角:管理诊断与ERP导入.pptx
- 第5章 液压控制阀.ppt
- 第6章 液压辅助元件.ppt
- 第7章 液压基本回路.ppt
- 全国保密教育线上培训考试提分评估复习带答案详解(培优).docx
- 全国保密教育线上培训考试强化训练题型汇编附参考答案详解【精练】.docx
- 全国保密教育线上培训考试复习试题学生专用附答案详解.docx
- 全国保密教育线上培训考试强化训练模考卷含答案详解ab卷.docx
- 全国保密教育线上培训考试复习提分资料带答案详解(培优a卷).docx
- 全国保密教育线上培训考试复习提分资料含完整答案详解(考点梳理).docx
- 全国保密教育线上培训考试强化训练高能(名师系列)附答案详解.docx
- 全国保密教育线上培训考试复习提分资料附答案详解(b卷).docx
- 全国保密教育线上培训考试强化训练模考卷带答案详解(夺分金卷).docx
- 全国保密教育线上培训考试强化训练模考卷(能力提升)附答案详解.docx
最近下载
- 危险废物安全培训.pptx VIP
- GB 5768.4-2017 道路交通标志和标线 第4部分作业区.docx
- 农业机械化及其自动化专业人才培养方案(本科).pdf VIP
- 专题11交通-【好题汇编】三年(2022-2024)高考地理真题分类汇编(原卷版).docx VIP
- 企业工会工作总结2025.pptx VIP
- 2025年三年级道德与法治上册部编版《我和时间交朋友》教案(定稿).pdf VIP
- 浙教版七年级上册数学期中试卷.doc VIP
- 电子商务概论期末大作业.pdf VIP
- 附件2.《中国华能集团有限公司陆上风电、光伏项目标杆造价指标(2022版)》-光伏部分.pdf VIP
- VW75174_2018_10汽车连接器的测试技术规范(英文版)-EN.pdf VIP
原创力文档


文档评论(0)