云计算基础第8章ppt课件_第1页
云计算基础第8章ppt课件_第2页
云计算基础第8章ppt课件_第3页
云计算基础第8章ppt课件_第4页
云计算基础第8章ppt课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Google云计算原理,V1,.,目录,1.概念回顾,2.背景,3.GFS,4.MapReduce,Google云计算原理,.,概念回顾,1,.,大气“云”、星系“云”亚马逊弹性计算“云”EC2将闲置资源出租利用“云”计算的核心思想计算、服务在“云”端,“云”计算命名的猜想,“云”的规模较大“云”具有可伸缩性“云”的边界模糊“云”飘忽不定,无法确定具体位置,4,.,2,背景,.,Google与Microsoft的战争,6,.,Google和微软之间日益激烈的对立将是一场史诗般的企业战争,将对两家公司的成功和发展产生重要影响,并规定着消费者和企业如何工作、购物、通讯,以及“他们过的数字生活”Google认为这一切将发生在遥远的数据中心中的服务器,用户可以通过许多有线和无线设备访问这些服务,这就是所谓的“云计算”微软也认为未来在于Web,但它的重心仍然是其桌面PC软件,冲突之源,7,.,90%计算任务都能够通过“云计算”技术完成桌面软件正在向Web软件转型云计算是开放标准,业界不会有公司独裁中小企业、大学、消费者会相对迅速地转向基于Web的“云计算”技术新的赢利模式低廉的云计算给Google带来更多的流量,进而带来更多的广告收入承认“云计算”不会在一夜之间普及大公司通常会慢慢地改变自己的习惯其它问题,例如“飞机问题”,以及在不能上网时用户如何工作。,Google的观点,GoogleCEO埃立克.施米特,8,.,在计算机上安装的传统软件是微软的根本比尔盖茨(BillGates)接受媒体采访时曾提出:“我们致力于推动PC成为一切的中心”微软将自身的战略称为“软件加服务”微软将Google的乐观称作是一厢情愿。利用Web软件收发电子邮件、处理文档和电子表格、进行协作很方便吗?高速宽带连接会象Google断言的那样普及和可靠吗?企业、大学、消费者会让Google保存他们的资料吗?,Microsoft的观点,MicrosoftCEO史蒂夫.鲍尔默,孰优孰劣,等待市场检验!,9,.,应用规模对于系统架构设计的重要性Google应用的特性海量用户+海量数据需要具备较强的可伸缩性如何又快又好地提供服务?,Google的秘密武器,秘密武器:云计算平台,10,.,Google的云计算梦想,“浏览器操作系统”,11,.,Google云计算应用的分类,12,GoogleAppEngine可提供快速开发和部署,管理简单,无需担心硬件、补丁或备份,并可轻松实现可扩展性,.,3,GFS,.,什么是文件系统?FAT,FAT32,NTFS,EXT,用于持久地存储数据的系统通常覆盖在底层的物理存储介质上硬盘、CD、磁带等数据组织的基本单元:文件具有文件名(1.txt)通常支持层次化嵌套(目录结构),文件系统基础,14,.,文件路径文件与目录的结合,用于定位文件绝对路径,/home/aaron/foo.txt相对路径,docs/someFile.doc规范路径定位文件的最短绝对路径/home/aaron/foo.txt,/home/./home/aaron/./foo.txt所有规范路径的集合构成了文件系统的目录结构,文件系统基础,15,.,文件系统的存储内容主要内容:用户的实际数据元数据:驱动器元数据与文件元数据,文件系统基础,16,.,文件分块存储,文件系统基础,17,.,文件系统设计的考虑因素最小存储单元较小可减少浪费空间,较大则可提高文件顺序读取速度(随机访问呢?)文件系统的设计目标是提高访问速度还是提高使用率?文件系统的安全性多用户环境下的文件安全读/写权限分配文件附带访问控制列表(ACL)文件系统缓存提高文件系统读写效率,文件系统基础,18,.,Google需要一个支持海量存储的文件系统购置昂贵的分布式文件系统与硬件?,Google设计GFS的动机,是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统?,19,.,Google云计算平台技术架构文件存储,GoogleDistributedFileSystem,GFS并行数据处理MapReduce分布式锁Chubby结构化数据表BigTable,Google如何实现?,20,.,21,.,Google需要一个支持海量存储的文件系统购置昂贵的分布式文件系统与硬件?,Google设计GFS的动机,是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统?,22,.,为什么不使用当时现存的文件系统?Google所面临的问题与众不同不同的工作负载,不同的设计优先级(廉价、不可靠的硬件)需要设计与Google应用和负载相符的文件系统,Google设计GFS的动机,23,一个适用于大规模分布式数据处理相关应用的,可扩展的分布式文件系统。它基于普通的不算昂贵的硬件设备,实现了容错的设计,并且为大量客户端提供极高的聚合处理性能。,.,GFS的假设与目标,硬件出错是正常而非异常系统应当由大量廉价、易损的硬件组成必须保持文件系统整体的可靠性主要负载是流数据读写主要用于程序处理批量数据,而非与用户的交互或随机读写数据写主要是“追加写”,“插入写”非常少需要存储大尺寸的文件存储的文件尺寸可能是GB或TB量级,而且应当能支持存储成千上万的大尺寸文件,24,.,将文件划分为若干块(Chunk)存储每个块固定大小(64M)通过冗余来提高可靠性每个数据块至少在3个数据块服务器上冗余数据块损坏概率?通过单个master来协调数据访问、元数据存储结构简单,容易保持元数据一致性无缓存Why?,GFS的设计思路,25,.,GFS将容错的任务交给文件系统完成,利用软件的方法解决系统可靠性问题,使存储的成本成倍下降。GFS将服务器故障视为正常现象,并采用多种方法,从多个角度,使用不同的容错措施,确保数据存储的安全、保证提供不间断的数据存储服务,GFS架构是怎样的?,.,GFS系统架构,Client(客户端):应用程序的访问接口Master(主服务器):管理节点,在逻辑上只有一个,保存系统的元数据,负责整个文件系统的管理ChunkServer(数据块服务器):负责具体的存储工作。数据以文件的形式存储在ChunkServer上,控制流,状态流,IO并行,.,分布式系统设计告诉我们:这是单点故障这是性能瓶颈GFS的解决办法单点故障问题,单一Master问题,采用多个(如3个)影子Master节点进行热备,一旦主节点损坏,立刻选举一个新的主节点服务,28,.,GFS的解决办法性能瓶颈问题,单一Master问题,尽可能减少数据存取中Master的参与程度,不使用Master读取数据,仅用于保存元数据,客户端缓存元数据,数据修改顺序交由PrimaryChunkServer完成,Simple,andgoodenough!,29,.,存储元数据文件系统目录管理与加锁与ChunkServer进行周期性通信发送指令,搜集状态,跟踪数据块的完好性数据块创建、复制及负载均衡对ChunkServer的空间使用和访问速度进行负载均衡,平滑数据存储和访问请求的负载对数据块进行复制、分散到ChunkServer上一旦数据块冗余数小于最低数,就发起复制操作,Master节点的任务,30,.,垃圾回收在日志中记录删除操作,并将文件改名隐藏缓慢地回收隐藏文件与传统文件删除相比更简单、更安全陈旧数据块删除探测陈旧的数据块,并删除,Master节点的任务,31,.,采用中心服务器模式可以方便地增加ChunkServerMaster掌握系统内所有ChunkServer的情况,方便进行负载均衡不存在元数据的一致性问题,GFS架构的特点,32,.,不缓存数据GFS的文件操作大部分是流式读写,不存在大量的重复读写,使用Cache对性能提高不大ChunkServer上的数据存取使用本地文件系统,如果某个Chunk读取频繁,文件系统具有Cache从可行性看,Cache与实际数据的一致性维护也极其复杂,GFS架构的特点,?,33,.,在用户态下实现无需了解操作系统的内部实现机制和接口,降低了实现难度,提高了通用性。POSIX接口提供的功能更丰富,而在内核态中调试相对困难。直接利用ChunkServer的文件系统存取Chunk,实现简单用户态应用调试较为简单,利于开发用户态的GFS不会影响ChunkServer的稳定性,GFS架构的特点,34,.,提供专用的访问接口未提供标准的POSIX访问接口:面向GOOGLE自身的应用而开发的。降低GFS的实现复杂度:GFS是在应用层实现的专用接口直接和Client,Master,ChunkServer交互,减少了操作系统之间上下文的切换,降低了复杂度,提高了效率。,.,GFS的容错方法,GFS的容错机制Master容错三类元数据:命名空间(目录结构)、Chunk与文件名的映射以及Chunk副本的位置信息前两类通过日志提供容错,Chunk副本信息存储于ChunkServer,Master出现故障时可恢复,36,.,GFS的容错方法,GFS的容错机制ChunkServer容错每个Chunk有多个存储副本(通常是3个),分别存储于不通的服务器上每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移至其他Chunk副本),37,.,大规模集群安装技术,故障检测技术,节点动态加入技术,节能技术,新的ChunkServer加入时,只需裸机加入,大大减少GFS维护工作量,GFS构建在不可靠廉价计算机之上的文件系统,由于节点数目众多,故障发生十分频繁,Google采用了多种机制降低服务器能耗,如采用蓄电池代替昂贵的UPS,系统管理技术,GFS集群中通常有非常多的节点,需要相应的技术支撑,系统管理技术,.,超过50个GFS集群每个集群包含数千个存储节点管理着PB(1015Byte)级的数据,GFS在Google中的部署,巨型、廉价、稳定的数据中心,39,.,GFS小结,简单的,就是最好的!,40,实现了控制流和数据流的分离,.,总结与讨论,GFS有什么问题吗?,41,.,4,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一种处理海量数据的并行编程模式,用于大规模数据集(通常大于1TB)的并行运算。“Map(映射)”、“Reduce(化简)”的概念和主要思想,都是从函数式编程语言和矢量编程语言借鉴,适合非结构化和结构化的海量数据的搜索、挖掘、分析与机器智能学习等,.,Google拥有海量数据,并且需要快速处理,.,计算问题简单,但求解困难待处理数据量巨大(PB级),只有分布在成百上千个节点上并行计算才能在可接受的时间内完成如何进行并行分布式计算?如何分发待处理数据?如何处理分布式计算中的错误?,简单的问题,计算并不简单!,.,JefferyDean设计一个新的抽象模型,封装并行处理、容错处理、本地化计算、负载均衡的细节,还提供了一个简单而强大的接口这就是MapReduce,GoogleMapReduce架构设计师JeffreyDean,.,产生背景编程模型实现机制案例分析,.,MapReduce运行模型,Map函数对一部分原始数据进行指定的操作。每个Map操作都针对不同的原始数据,因此Map与Map之间是互相独立的,这使得它们可以充分并行化Reduce操作对每个Map所产生的一部分中间结果进行合并操作,每个Reduce所处理的Map中间结果是互不交叉的,所有Reduce产生的最终结果经过简单连接就形成了完整的结果集,.,Map:(in_key,in_value)(keyj,valuej)|j=1kReduce:(key,value1,valuem)(key,final_value),开发者需编写两个主要函数,Map输入参数:in_key和in_value,它指明了Map需要处理的原始数据Map输出结果:一组对,这是经过Map操作后所产生的中间结果,.,Map:(in_key,in_value)(keyj,valuej)|j=1kReduce:(key,value1,valuem)(key,final_value),开发者需编写两个主要函数,Reduce输入参数:(key,value1,valuem)Reduce工作:对这些对应相同key的value值进行归并处理Reduce输出结果:(key,final_value),所有Reduce的结果并在一起就是最终结果,在reduce操作之前,系统已经将所有MAP产生的中间结果进行了归类处理,使得相同的key对应的一系列value能够集结在一起提供给一个Reduce进行归并处理.,.,怎么用MapReduce计算一个大型文本文件中各单词出现次数?,.,产生背景编程模型实现机制案例分析,.,MapReduce操作执行流程图,.,操作过程,(1)输入文件分成M块,每块大概16M64MB(可以通过参数决定),接着在集群的机器上执行分派处理程序(2)M个Map任务和R个Reduce任务需要分派,Master选择空闲Worker来分配这些Map或Reduce任务,.,(3)Worker读取并处理相关输入块,Map函数产生的中间结果对暂时缓冲到内存(4)中间结果定时写到本地硬盘,分区函数将其分成R个区。中间结果在本地硬盘的位置信息将被发送回Master,然后Master负责把这些位置信息传送给ReduceWorker,.,操作过程,(5)当Master通知执行R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论