《云计算(第二版)》教材配套课件2—第二章Google云计算原理与应用

上传人:Co****e 文档编号:48810386 上传时间:2018-07-20 格式:PPT 页数:41 大小:3.02MB
返回 下载 相关 举报
《云计算(第二版)》教材配套课件2—第二章Google云计算原理与应用_第1页
第1页 / 共41页
《云计算(第二版)》教材配套课件2—第二章Google云计算原理与应用_第2页
第2页 / 共41页
《云计算(第二版)》教材配套课件2—第二章Google云计算原理与应用_第3页
第3页 / 共41页
《云计算(第二版)》教材配套课件2—第二章Google云计算原理与应用_第4页
第4页 / 共41页
《云计算(第二版)》教材配套课件2—第二章Google云计算原理与应用_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《《云计算(第二版)》教材配套课件2—第二章Google云计算原理与应用》由会员分享,可在线阅读,更多相关《《云计算(第二版)》教材配套课件2—第二章Google云计算原理与应用(41页珍藏版)》请在金锄头文库上搜索。

1、电子工业出版社云计算(第二版)配套课件解放军理工大学 刘鹏 教授主编 华东交通大学 刘鹏 制作第2章 Google云计算原理与应用云计算(第二版)购买网址: 当当网 京东商城姊妹力作实战Hadoop购买网址: 当当网 京东商城提 纲 Google文件系统GFS 分布式数据处理MapReduce 分布式锁服务Chubby 分布式结构化数据表Bigtable 分布式存储系统Megastore 大规模分布式系统的监控基础架构Dapper Google应用程序引擎 Google文件系统GFS 系统架构 容错机制 系统管理技术 Google业务 全球最大搜索引擎、Google Maps、Google E

2、arth、Gmail 、YouTube等数据量巨大,且面 向全球用户提供实时服 务 Google云计算平台技术架构 文件存储,Google Distributed File System,GFS 并行数据处理MapReduce 分布式锁Chubby 分布式结构化数据表BigTable 分布式存储系统Megastore 分布式监控系统Dapper 秘密武器:云计算平台!GFS设计动机Google需要一个支持海量存储的文件系统 购置昂贵的分布式文件系统与硬件?为什么不使用当时现存的文件系统?Google所面临的问题与众不同不同的工作负载,不同的设计优先级(廉价、不可靠的硬件)需要设计与Google

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

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

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

6、度 对应用提供一些特殊支持 降低复杂度 Google文件系统GFS 系统架构 容错机制 系统管理技术 Master容错 MasterName 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中的每一个文件被划分成多个Chun

8、k,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 Google MapReduce 架构设计师 Jeffrey Dean分布式数据处理MapReduce 产生背景 编程模型 实现机制 案例分析 MapReduce运行模型 Map函数对一部分原始数 据进行指定的操作。每个Map 操作都针对不同的原始数据, 因此Map与M

11、ap之间是互相独 立的,这使得它们可以充分并 行化 Reduce操作对每个Map 所产生的一部分中间结果进行 合并操作,每个Reduce所处理 的Map中间结果是互不交叉的 ,所有Reduce产生的最终结果 经过简单连接就形成了完整的 结果集Map: (in_key, in_value) (keyj, valuej) | j = 1k Reduce: (key, value1,valuem) (key, final_value) 开发者需编写 两个主要函数 Map输入参数:in_key和in_value,它指明了Map需要 处理的原始数据 Map输出结果:一组对,这是经过Map操作 后所产生的

12、中间结果 Map: (in_key, in_value) (keyj, valuej) | j = 1k Reduce: (key, value1,valuem) (key, final_value) 开发者需编写 两个主要函数 Reduce输入参数:(key, value1,valuem)Reduce工作:对这些对应相同key的value值进行归并处理Reduce输出结果:(key, final_value),所有Reduce的 结果并在一起就是最终结果 Map的输入参数指明了需要处理哪部分数据,以“”表示,经过Map处理,形成一批中间结果“”。而Reduce函数处理中间结果,将相同单词出现

13、的次数进行累加,得到每个单词总的出现次数 怎么用MapReduce计算一个大型文本文件中各单词出现次数?分布式数据处理MapReduce 产生背景 编程模型 实现机制 案例分析 MapReduce操作执行流程图 操作过程(1)输入文件分成M块,每块大概16M64MB(可以通过参 数决定),接着在集群的机器上执行分派处理程序(2)M个Map任务和R个Reduce任务需要分派,Master选择 空闲Worker来分配这些Map或Reduce任务(3)Worker读取并处理相关输入块,Map函数产生的中间结 果对暂时缓冲到内存 (4)中间结果定时写到本地硬盘,分区函数将其分成R个区 。中间结果在本地

14、硬盘的位置信息将被发送回Master,然后 Master负责把这些位置信息传送给Reduce Worker 操作过程(5)当Master通知执行Reduce的Worker关于中间 对的位置时,它调用远程过程,从Map Worker 的本地硬盘上读取缓冲的中间数据。当Reduce Worker读到 所有的中间数据,它就使用中间key进行排序,这样可使相同 key的值都在一起(6)Reduce Worker根据每一个唯一中间key来遍历所有的排 序后的中间数据,并且把key和相关的中间结果值集合传递给 用户定义的Reduce函数。Reduce函数的结果写到一个最终 的输出文件(7)当所有的Map任

15、务和Reduce任务都完成的时候,Master 激活用户程序。此时MapReduce返回用户程序的调用点MapReduce容错 Master周期性地给 Worker发送ping命 令,若没有应答,则 认为Worker失效, 终止其任务调度,把 该任务调度到其他 Worker上重新执行 Master会周期性地 设置检查点( checkpoint),并 导出Master的数据 。一旦某个任务失效 ,系统就从最近的一 个检查点恢复并重新 执行MapReduce容错分布式数据处理MapReduce 产生背景 编程模型 实现机制 案例分析 假设有一批海量的数据,每个数据都是由26个字母组成的字符 串,原始的数据集合是完全无序的,怎样通过MapReduce完成 排序工作,使其有序(字典序)呢? 排序通常用于衡量分布式数 据处理框架的数据处理能力 对原始的数据进行分割( Split),得到N个不同的 数据分块 每一个数据分块都 启动一个Map进行 处理。采用桶排序 的方法,每个Map 中按照首字母将字 符串分配到26个不 同的桶中 按照首字母将Map 中不同桶中的字符 串集合放置到相应 的Reduce中进行处 理。具体来说就是 首字母为a的字符 串全部放在 Reduce1中处理, 首字母为b的字符 串全部放在 Reduce2,以此类 推 谢 谢!http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 商业贸易

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号