大数据核心技术 之 MapReduce.pptx

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大数据核心技术 之 MapReduce Hadoop MapReduce--大数据并行编程架构1、MapReduce概述2、MapReduce并行编程模型3、MapReduce基本架构和工作过程4、MapReduce主要组件与编程接口 MapReduce 介绍源自于Google 的MapReduce论文发表于2004年Hadoop MapReduce是其开源实现MapReduce特点易于编程良好的扩展性高容错性适合PB级以上海量数据的离线处理 MapReduce 不擅长的方面实时计算像MySQL一样,在毫秒级或秒级内返回结果流式计算MapReduce的输入数据集是静态的,不能动态变化MapReduce自身的设计特点决定了数据源必须是静态的DAG计算多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出 什么时候可使用 MapReduce 并行化计算一个大数据若可以分为具有同样计算过程的数据块,并且这些数据块之间不存在数据依赖关系,则提高处理速度的最好办法就是并行计算例如:假设有一个巨大的2维数据需要处理(比如求每个元素的开立方),其中对每个元素的处理是相同的,并且数据元素间不存在数据依赖关系,可以考虑不同的划分方法将其划分为子数组,由一组处理器并行处理MapReduce 并行化计算合并Master:负责划分和分配任务Workder:负责数据块计算 Hadoop MapReduce--大数据并行编程架构1、MapReduce概述2、MapReduce并行编程模型分而治之策略MapReduce编程模型举例MapReduce的两个阶段MapReduce编程模型3、MapReduce基本架构和工作过程4、MapReduce主要组件与编程接口“分而治之” 的并行计算模型大数据计算任务任务划分子任务子任务子任务子任务……结果合并计算结果 MapReduce编程模型举例 -- WordCount问题描述有大量文本文件(规模为PB级),如何统计这些文件中所有单词出现的次数传统解决方案使用 HashTable 解决?MapReduce解决方案 数据划分:分别统计每个文件中单词出现的次数 计算汇总:汇总统计所有文件中同一个单词出现的次数MapReduce中是如何实现的呢?MapReduce的WordCount过程InputSplittingMappingShufflingReducingFinal resultBear, 1Bear, 1Bear, 2Deer, 1Bear, 1River, 1Deer Bear RiverCar, 1Car, 1Car, 1Car, 3Bear, 2Car, 3Deer, 2River, 2Deer Bear RiverCar Car RiverDeer Car BearCar, 1Car, 1River, 1Car Car RiverDeer, 2Deer, 1Deer, 1Deer, 1Car, 1Bear, 1Deer Car BearRiver, 1River, 1River, 2 MapReduce编程思想MapReduce借助于函数式设计语言Lisp的设计思想,通过Map和Reduce函数提供了两个高层的并行编程抽象模型和接口map: (k1, v1) ? [(k2, v2)]reduce: (k2, [v2]) ? [(k3, v3)]k1:是当前文本偏移量,v1:文本值k2:mapping后的keyMapReduce伪代码(实现Map和Reduce两个函数):Class Mapper method map(String input_key, String input_value): // input_key: text document name // input_value: document contents for each word w in input_value: EmitIntermediate(w, 1); (k1, v1) (k2, v2) Class Reducer method reduce(String output_key, Iterator intermediate_values): // output_key: a word // output_values: a list of counts int result = 0; for each v in intermediate_values: result += ParseInt(v); Emit(output_key, result);(k2, [v2]) (k3, v3) WordCount实例演示 MapReduce 基本并行编程模型海量数据存储初始kv键值对初始kv键值对初始

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档