Google云计算原理与应用1课件.ppt

上传人(卖家):三亚风情 文档编号:3044695 上传时间:2022-06-25 格式:PPT 页数:40 大小:4.41MB
下载 相关 举报
Google云计算原理与应用1课件.ppt_第1页
第1页 / 共40页
Google云计算原理与应用1课件.ppt_第2页
第2页 / 共40页
Google云计算原理与应用1课件.ppt_第3页
第3页 / 共40页
Google云计算原理与应用1课件.ppt_第4页
第4页 / 共40页
Google云计算原理与应用1课件.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、第7章 Google云计算原理与应用 提 纲 ? Google文件系统GFS ? 分布式数据处理MapReduce ? 分布式锁服务Chubby ? 分布式结构化数据表Bigtable ? 分布式存储系统Megastore ? 大规模分布式系统的监控基础架构Dapper ? Google应用程序引擎 Google文件系统GFS ? 系统架构 ? 容错机制 ? 系统管理技术 Google业务业务 ?全球最大搜索引擎、Google Maps、Google Earth、Gmail、YouTube等 数据量巨大,且面向全球用户提供实时服务 Google 云计算平台技术架构 ?文件存储,Google D

2、istributed File System,GFS ?并行数据处理MapReduce ?分布式锁Chubby ?分布式结构化数据表BigTable ?分布式存储系统Megastore ?分布式监控系统Dapper 秘密武器:云计算平台! GFS设计动机 ?Google需要一个支持海量存储的文件系统 ?购置昂贵的分布式文件系统与硬件? ?为什么不使用当时现存的文件系统? ? Google所面临的问题与众不同 ? 不同的工作负载,不同的设计优先级(廉价、不可靠的硬件) ? 需要设计与Google应用和负载相符的文件系统 是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统? GFS将容错的

3、任务交给文件系统完成,利用软件的方法解决系统可靠性问题,使存储的成本成倍下降。GFS将服务器故障视为正常现象,并采用多种方法,从多个角度,使用不同的容错措施,确保数据存储的安全、保证提供不间断的数据存储服务 GFS架构是怎样的? 系统架构 Client (客户端):应用程序的访问接口 Master(主服务器):管理节点,在逻辑上只有一个,保存系统的元数据,负责整个文件系统的管理 Chunk Server (数据块服务器):负责具体的存储工作。数据以文件的形式存储在Chunk Server上 实实现现机机制制 ?客户端首先访问Master节点,获取交互的Chunk Server信息,然后访问这些

4、Chunk Server,完成数据存取工作。这种设计方法实现了控制流和数据流的分离。 ?Client与Master之间只有控制流,而无数据流,极大地降低了Master的负载。 ?Client与Chunk Server之间直接传输数据流,同时由于文件被分成多个Chunk进行分布式存储,Client可以同时访问多个Chunk Server,从而使得整个系统的I/O高度并行,系统整体性能得到提高。 GFS特点有哪些? GFS特点 采用中心服务器模式采用中心服务器模式 ?可以方便地增加Chunk Server ? Master掌握系统内所有Chunk Server的情况,方便进行负载均衡 ?不存在元数

5、据的一致性问题 不缓存数据 ?文件操作大部分是流式读写,不存在大量重复读写,使用Cache对性能提高不大 ? Chunk Server上数据存取使用本地文件系统,若读取频繁,系统具有Cache ?从可行性看,Cache与实际数据的一致性维护也极其复杂 在用户态下实现 ?利用POSIX编程接口存取数据降低了实现难度,提高通用性 ?POSIX接口提供功能更丰富 ?用户态下有多种调试工具 ?Master和Chunk Server都以进程方式运行,单个进程不影响整个操作系统 ?GFS和操作系统运行在不同的空间,两者耦合性降低 只提供专用接口 ?降低实现的难度 ?对应用提供一些特殊支持 ?降低复杂度 G

6、oogle文件系统GFS ? 系统架构 ? 容错机制 ? 系统管理技术 Master容错 Master Name Space,文件系统目录结构 Chunk 与文件名的映射 Chunk 副本的位置信息(默认有三个副本) Name Space ,文件系统目录结构 Chunk 与文件名的映射 Chunk 副本的位置信息 Master 单个Master,对于前两种元数据,GFS通过操作日志来提供容错功能 第三种元数据信息保存在各个Chunk Server上,Master故障时,磁盘恢复 GFS还提供了Master远程的实时备份,防止Master彻底死机的情况 Chunk Server容错 ?采用副本方

7、式实现Chunk Server容错 ? 每一个Chunk有多个存储副本(默认为三个),分布存储在不同的Chunk Server上用户态的GFS不会影响Chunk Server的稳定性 ? 副本的分布策略需要考虑多种因素,如网络的拓扑、机架的分布、磁盘的利用率等 ? 对于每一个Chunk,必须将所有的副本全部写入成功,才视为成功写入 尽管一份数据需要存储三份,好像磁盘空间的利用率不高,但综合比较多种因素,加之磁盘的成本不断下降,采用副本无疑是最简单、最可靠、最有效,而且实现的难度也最小的一种方法。 Simple, and good enough! ? GFS中的每一个文件被划分成多个Chunk,

8、Chunk的默认大小是64MB ? Chunk Server存储的是Chunk的副本,副本以文件的形式进行存储 ? 每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移至其他Chunk副本) Google文件系统GFS ? 系统架构 ? 容错机制 ? 系统管理技术 大规模集群安装技术 故障检测技术 节点动态加入技术 节能技术 新的Chunk Server加入时 ,只需裸机加入,大大减少GFS维护工作量 GFS构建在不可靠廉价计算机之上的文件系统,由于节点数目众多,故障发生十分频繁 Google采用了多种机制降低服

9、务器能耗,如采用蓄电池代替昂贵的UPS 系统管理技术 GFS集群中通常有非常多的节点,需要相应的技术支撑 小结 简单的,就是最好的! 讨论 GFS有什么问题吗? 分布式数据处理MapReduce ?产生背景 ?编程模型 ? 实现机制 ? 案例分析 MapReduce ?一种处理海量数据的并行编程模式,用于大规模数据集(通常大于1TB)的并行运算。 ?“Map(映射)”、“Reduce(化简)”的概念和主要思想,都是从函数式编程语言和矢量编程语言借鉴 适合非结构化和结构化的海量数据的搜索、挖掘、分析与机器智能学习等 ?Google拥有海量数据,并且需要快速处理 ?计算问题简单,但求解困难 ? 待

10、处理数据量巨大(PB级),只有分布在成百上千个节点上并行计算才能在可接受的时间内完成 ? 如何进行并行分布式计算? ? 如何分发待处理数据? ? 如何处理分布式计算中的错误? 简单的问题,计算并不简单! Jeffery Dean设计一个新的抽象模型, 封装并行处理、容错处理、本地化计算、负载均衡的细节,还提供了一个简单而强大的接口 这就是MapReduce MapReduce Google MapReduce 架构设计师 Jeffrey Dean 分布式数据处理MapReduce ?产生背景 ?编程模型 ? 实现机制 ? 案例分析 Map Reduce Map Map 原始数据 1 原始数据

11、2 原始数据 M 结果 1 结果 R Reduce MapReduce运行模型 Map函数函数对一部分原始数据进行指定的操作。每个Map操作都针对不同的原始数据,因此Map与Map之间是互相独立的,这使得它们可以充分并行化 Reduce操作操作对每个Map所产生的一部分中间结果进行合并操作,每个Reduce所处理的Map中间结果是互不交叉的,所有Reduce产生的最终结果经过简单连接就形成了完整的结果集 Map: (in_key, in_value) ? (keyj, valuej) | j = 1k Reduce: (key, value1, ,valuem) ? (key, final_v

12、alue) 开发者需编写开发者需编写 两个主要函数两个主要函数 Map输入参数:in_key和in_value,它指明了Map需要处理的原始数据 Map输出结果:一组对,这是经过Map操作后所产生的中间结果 Map: (in_key, in_value) ? (keyj, valuej) | j = 1k Reduce: (key, value1, ,valuem) ? (key, final_value) 开发者需编写开发者需编写 两个主要函数两个主要函数 Reduce输入参数:(key, value1,valuem) Reduce工作:对这些对应相同key的value值进行归并处理 Red

13、uce输出结果:(key, final_value),所有Reduce的结果并在一起就是最终结果 Map的输入参数指明了需要处理哪部分数据,以“”表示,经过Map处理,形成一批中间结果“”。而Reduce函数处理中间结果,将相同单词出现的次数进行累加,得到每个单词总的出现次数 怎么用MapReduce计算一个大型文本文件中各单词出现次数? 分布式数据处理MapReduce ?产生背景 ?编程模型 ? 实现机制 ? 案例分析 MapReduce操作执行流程图 操作过程 (1)输入文件分成 M块,每块大概 16M64MB(可以通过参数决定),接着在集群的机器上执行分派处理程序 (2)M个Map任务

14、和R个Reduce任务需要分派, Master选择空闲Worker来分配这些 Map或Reduce任务 (3)Worker读取并处理相关输入块, Map函数产生的中间结果 对暂时缓冲到内存 (4)中间结果定时写到本地硬盘,分区函数将其分成R个区。中间结果在本地硬盘的位置信息将被发送回 Master,然后Master负责把这些位置信息传送给 Reduce Worker 操作过程 (5)当Master通知执行Reduce的Worker关于中间 对的位置时,它调用远程过程,从Map Worker 的本地硬盘上读取缓冲的中间数据。当 Reduce Worker 读到所有的中间数据,它就使用中间 key

15、进行排序,这样可使相同 key的值都在一起 (6)Reduce Worker 根据每一个唯一中间 key来遍历所有的排序后的中间数据,并且把key和相关的中间结果值集合传递给用户定义的 Reduce函数。Reduce函数的结果写到一个最终的输出文件 (7)当所有的Map任务和Reduce任务都完成的时候, Master激活用户程序。此时MapReduce 返回用户程序的调用点 MapReduceMapReduce容错容错 Master周期性地给Worker 发送ping 命令,若没有应答,则认为Worker 失效,终止其任务调度,把该任务调度到其他Worker 上重新执行 Master会周期性

16、地设置检查点(checkpoint ),并导出Master的数据。一旦某个任务失效,系统就从最近的一个检查点恢复并重新执行 MapReduce 容错 分布式数据处理MapReduce ?产生背景 ?编程模型 ? 实现机制 ? 案例分析 假设有一批海量的数据,每个数据都是由26个字母组成的字符串,原始的数据集合是完全无序的,怎样通过MapReduce完成排序工作,使其有序(字典序)呢? 排序通常用于衡量分布式数据处理框架的数据处理能力 对原始的数据进行分割(Split),得到N个不同的数据分块 每一个数据分块都启动一个Map进行处理。采用桶排序的方法,每个Map中按照首字母将字符串分配到26个不同的桶中 按照首字母将Map中不同桶中的字符串集合放置到相应的Reduce中进行处理。具体来说就是首字母为a的字符串全部放在Reduce1中处理,首字母为b的字符串全部放在Reduce2,以此类推 习题 ? 1Google云计算技术包括哪些内容? ? 2当前主流分布式文件系统有哪些?各有什么优缺点? ? 3GFS采用了哪些容错措施来确保整个系统的可靠性? ? 4MapReduce与传统的分布式程序设计相比有何优点?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Google云计算原理与应用1课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|