资源描述
Google云计算原理,CloudComputing,电子工业出版社刘鹏主编云计算教材配套课件3,主要内容(6学时),Google云计算原理,并行数据处理模型MapReduce,摩尔定律集成电路芯片上所集成的电路的数目,每隔18个月就翻一番,同时性能也提升一倍经验总结,12个月-18个月-24个月,并行计算基础,GordonMoore,“免费的性能大餐”?Andygiveth,andBilltakethaway软件算法、数据结构似乎不再重要,因为处理器性能不断提升,并行计算基础,免费的午餐已经结束!,Intel,Microsoft,摩尔定律正在走向终结单芯片容纳晶体管的增加,对制造工艺提出要求CPU制造18nm技术,电子泄漏问题CPU主频已达3GHz时代,难以继续提高散热问题(发热太大,且难以驱散)功耗太高,并行计算基础,未来的发展:多核,在多核时代生存,必须考虑并发问题不存在解决多核编程问题的银弹,不存在可以简单地将并发编程问题化解掉的工具,开发高性能的并行程序必须要求开发者从根本上改变其编程方法从某种意义上来说,这不仅仅是要改变50年来顺序程序设计的工艺传统,而且是要改变数百万年来人类顺序化思考问题的习惯,并行计算基础,HerbSutter,串行编程早期的计算里,程序一般是被串行执行的程序是指令的序列,在单处理器的机器里,程序从开始到结束,这些指令一条接一条的执行并行编程一道处理可以被划分为几部分,然后它们可以并发地执行各部分的指令分别在不同的CPU上同时运行,这些CPU可以存在于单台机器中,也可以存在于多台机器上,它们通过连接起来共同运作,并行计算基础,什么样的问题适合并行计算?斐波那契序列(Fibonacci)的计算?,并行计算基础,什么样的问题适合并行计算?如果有大量结构一致的数据要处理,且数据可以分解成相同大小的部分,那我们就可以设法使这道处理变成并行,并行计算基础,并行计算模式,并行计算基础,并行计算与分布式计算有何联系与区别?,Google拥有海量数据,并且需要快速处理,为什么需要MapReduce?,对爬虫获取的网页进行倒排索引计算网站的PageRank分析搜索趋势(GoogleTrends)计算网页的访问量,美国总统奥巴马,“Greatnessisneveragiven,itMustbeearned.”,计算问题简单,但求解困难待处理数据量巨大(PB级),只有分布在成百上千个节点上并行计算才能在可接受的时间内完成如何进行并行分布式计算?如何分发待处理数据?如何处理分布式计算中的错误?,为什么需要MapReduce?,简单的问题,计算并不简单!,为什么需要MapReduce?,GoogleMapReduce架构设计师JeffreyDean,JefferyDean设计一个新的抽象模型,使我们只要执行的简单计算,而将并行化、容错、数据分布、负载均衡的等杂乱细节放在一个库里,使并行编程时不必关心它们这就是MapReduce,一个软件架构,是一种处理海量数据的并行编程模式用于大规模数据集(通常大于1TB)的并行运算MapReduce实现了Map和Reduce两个功能Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集Reduce对结果集进行分类和归纳Map()和Reduce()两个函数可能会并行运行,即使不是在同一的系统的同一时刻,MapReduce,MapReduce示例:单词计数,案例:单词记数问题(WordCount)给定一个巨大的文本(如1TB),如何计算单词出现的数目?,MapReduce示例:单词计数,使用MapReduce求解该问题定义Map和Reduce函数,MapReduce示例:单词计数,使用MapReduce求解该问题Step1:自动对文本进行分割,MapReduce示例:单词计数,使用MapReduce求解该问题Step2:在分割之后的每一对进行用户定义的Map进行处理,再生成新的对,MapReduce示例:单词计数,使用MapReduce求解该问题Step3:对输出的结果集归拢、排序(系统自动完成),MapReduce示例:单词计数,使用MapReduce求解该问题Step4:通过Reduce操作生成最后结果,GoogleMapReduce执行流程,1、处理流程2、分片方式,源文件:GFSMap处理结果:本地存储Reduce处理结果:GFS日志:GFS,文件存储位置,思考,GoogleMapReduce计算架构有什么问题?,Worker故障Master周期性的ping每个worker。如果master在一个确定的时间段内没有收到worker返回的信息,那么它将把这个worker标记成失效重新执行该节点上已经执行或尚未执行的Map任务重新执行该节点上未完成的Reduce任务,已完成的不再执行Master故障定期写入检查点数据从检查点恢复,MapReduce的容错,WHY?,任务备份机制慢的workers会严重地拖延整个执行完成的时间由于其他的任务占用了资源磁盘损坏解决方案:在临近结束的时候,启动多个进程来执行尚未完成的任务谁先完成,就算谁可以十分显著地提高执行效率,MapReduce的优化,本地处理Master调度策略:向GFS询问获得输入文件blocks副本的位置信息Maptasks的输入数据通常按64MB来划分(GFSblock大小)按照blocks所在的机器或机器所在机架的范围进行调度效果绝大部分机器从本地读取文件作为输入,节省大量带宽,MapReduce的优化,跳过有问题的记录一些特定的输入数据常导致Map/Reduce无法运行最好的解决方法是调试或者修改不一定可行可能需要第三方库或源码在每个worker里运行一个信号处理程序,捕获map或reduce任务崩溃时发出的信号,一旦捕获,就会向master报告,同时报告输入记录的编号信息。如果master看到一条记录有两次崩溃信息,那么就会对该记录进行标记,下次运行的时候,跳过该记录,MapReduce的优化,“实践是检验真理的唯一标准”,实践证明,MapReduce是出色的分布式计算模型Google宣布,其对分布于1000台计算机上的1TB数据进行排序仅仅需要68s对4000台计算机上的1PB数据进行排序处理仅需要6小时2分钟(每次测试至少会损坏1块硬盘)在08年1月份,GoogleMapReduce平均每天的数据处理量是20PB,相当于美国国会图书馆当年5月份存档网络数据的240倍,“免费的午餐”已经结束并行思维MapReduce并行分布式数据处理框架屏蔽各种并行分布式计算的难题,课程小结,云计算应用实践,如何使用MapReduce实现海量数据的并行分布式排序?,讨论,云计算有没有什么问题?,欢迎访问中国云计算网站欢迎使用云计算教材电子工业出版社刘鹏主编,本讲到此结束,
展开阅读全文