- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Google云计算原理-驳蘑行数据处理模型MapReduce
电子工业出版社 刘鹏主编《云计算》教材配套课件3;Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile .
Copyright 2004-2011 Aspose Pty Ltd.;并行数据处理模型MapReduce;摩尔定律
集成电路芯片上所集成的电路的数目,每隔18个月就翻一番,同时性能也提升一倍
经验总结,12个月-18个月-24个月;“免费的性能大餐”?
Andy giveth, and Bill taketh away
软件算法、数据结构似乎不再重要,因为处理器性能不断提升;摩尔定律正在走向终结…
单芯片容纳晶体管的增加,对制造工艺提出要求
CPU制造18nm技术,电子泄漏问题
CPU主频已达3GHz时代,难以继续提高
散热问题(发热太大,且难以驱散)
功耗太高
;在多核时代生存,必须考虑并发问题
不存在解决多核编程问题的银弹, 不存在可以简单地将并发编程问题化解掉的工具, 开发高性能的并行程序必须要求开发者从根本上改变其编程方法
从某种意义上来说,这不仅仅是要改变50年来顺序程序设计的工艺传统, 而且是要改变数百万年来人类顺序化思考问题的习惯;串行编程
早期的计算里,程序一般是被串行执行的
程序是指令的序列,在单处理器的机器里,程序从开始到结束,这些指令一条接一条的执行
并行编程
一道处理可以被划分为几部分,然后它们可以并发地执行
各部分的指令分别在不同的CPU上同时运行,这些CPU可以存在于单台机器中,也可以存在于多台机器上,它们通过连接起来共同运作;什么样的问题适合并行计算?
斐波那契序列(Fibonacci)的计算?;什么样的问题适合并行计算?
如果有大量结构一致的数据要处理,且数据可以分解成相同大小的部分, 那我们就可以设法使这道处理变成并行;并行计算模式;Google拥有海量数据,并且需要快速处理;计算问题简单,但求解困难
待处理数据量巨大(PB级),只有分布在成百上千个节点上并行计算才能在可接受的时间内完成
如何进行并行分布式计算?
如何分发待处理数据?
如何处理分布式计算中的错误?
;Google MapReduce
架构设计师
Jeffrey Dean;一个软件架构,是一种处理海量数据的并行编程模式
用于大规模数据集(通常大于1TB)的并行运算
MapReduce实现了Map和Reduce两个功能
Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集
Reduce对结果集进行分类和归纳
Map()和 Reduce() 两个函数可能会并行运行,即使不是在同一的系统的同一时刻
;案例:单词记数问题(Word Count)
给定一个巨大的文本(如1TB),如何计算单词出现的数目?;使用MapReduce求解该问题
定义Map和Reduce函数;使用MapReduce求解该问题
Step 1: 自动对文本进行分割;使用MapReduce求解该问题
Step 2:在分割之后的每一对key,value进行用户定义的Map进行处理,再生成新的key,value对;使用MapReduce求解该问题
Step 3:对输出的结果集归拢、排序(系统自动完成);使用MapReduce求解该问题
Step 4:通过Reduce操作生成最后结果;;源文件:GFS
Map处理结果:本地存储
Reduce处理结果:GFS
日志:GFS;;Worker故障
Master 周期性的ping每个worker。如果master在一个确定的时间段内没有收到worker返回的信息,那么它将把这个worker标记成失效
重新执行该节点上已经执行或尚未执行的Map任务
重新执行该节点上未完成的Reduce任务,已完成的不再执行
Master故障
定期写入检查点数据
从检查点恢复;任务备份机制
慢的workers 会严重地拖延整个执行完成的时间
由于其他的任务占用了资源
磁盘损坏
解决方案: 在临近结束的时候,启动多个进程来执行尚未完成的任务
谁先完成,就算谁
可以十分显著地提高执行效率;本地处理
Master 调度策略:
向GFS询问获得输入文件blocks副本的位置信息
Map tasks 的输入数据通常按 64MB来划分 (GFS block 大小)
按照blocks所在的机器或机器所在机架的范围 进行调度
效果
绝大部分机器从本地读取文件作为输入,节省大量带宽;跳过有问题的记录
一些特定的输入数据常导致Map/Reduce无法运行
最好的解决方法是调试或者修改
不一定可行~ 可能需要第三方库或源码
在每个worker里运行一个信号处理程序,捕获map或reduce任务崩溃时发出的信号,一旦捕获,就会向maste
您可能关注的文档
最近下载
- 2024年电信智慧家庭工程师(三级)认证考试题库-上(单选题部分).docx
- 重生之我在古代当皇帝课件高二上学期自律主题班会.pptx
- 2025第三届全国技能大赛海南省选拔赛-数字孪生应用技术(国赛精选)项目技术文件.pdf VIP
- 质量管理六大工具-PPAP.pptx
- 11《山地回忆》第一课时 +公开课一等奖创新教案+导学案.docx VIP
- 苯并噻唑衍生物及作为荧光染料上的应用.pdf VIP
- 新编剑桥商务英语(高级)学生用书(第三版修订版)达姆特教材习题答案笔记及workbook答案.pdf
- 太上三洞神咒卷.doc
- 《铁路路基工程施工质量验收标准》TB-10414-2018全部表格.pdf VIP
- 化学优质课课件原电池说课.pptx
文档评论(0)