资源预览内容
第1页 / 共115页
第2页 / 共115页
第3页 / 共115页
第4页 / 共115页
第5页 / 共115页
第6页 / 共115页
第7页 / 共115页
第8页 / 共115页
第9页 / 共115页
第10页 / 共115页
亲,该文档总共115页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
云计算与数据挖掘云计算与数据挖掘云计算概念与现状Google文件系统Google MapReduceGoogle Bigtable大云数据挖掘系统内 容 提 纲云计算概念与现状云计算的起源云计算发展的驱动因素云计算的定义云计算是一种商业计算模型。它 将计算任务分布在大量计算机构成的 资源池上,使各种应用系统能够根据 需要获取计算力、存储空间和信息服 务。云计算技术体系结构Google云计算关键技术Google文件系统GFS(Google File System) 并行数据处理MapReduce 结构化数据表BigTable 分布式锁管理ChubbyMapReduceMapReduceBigTableBigTableGFSGFSChubbyChubby微软的节能措施Google云计算原理分布式文件系统GFS Google File System12Google需要一个支持海量存储的文件系统 购置昂贵的分布式文件系统与硬件?Google设计GFS的动机是否可以在一堆廉价且不可靠的硬件上构建 可靠的分布式文件系统?13为什么不使用当时现存的文件系统? Google所面临的问题与众不同 不同的工作负载,不同的设计优先级(廉价、不可靠的硬件 ) 需要设计与Google应用和负载相符的文件系统Google设计GFS的动机14GFS的假设与目标硬件出错是正常而非异常 系统应当由大量廉价、易损的硬件组成 必须保持文件系统整体的可靠性主要负载是流数据读写 主要用于程序处理批量数据,而非与用户的交互或随机读 写 数据写主要是“追加写”,“插入写”非常少需要存储大尺寸的文件 存储的文件尺寸可能是GB或TB量级,而且应当能支持存 储成千上万的大尺寸文件15将文件划分为若干块(Chunk)存储 每个块固定大小(64M)通过冗余来提高可靠性 每个数据块至少在3个数据块服务器上冗余 数据块损坏概率?通过单个master来协调数据访问、元数据存储 结构简单,容易保持元数据一致性无缓存 Why?GFS的设计思路16单一Master, 若干ChunkServerGFS的架构GFS的架构有什么问题吗 ?1718分布式系统设计告诉我们: 这是单点故障 这是性能瓶颈GFS的解决办法 单点故障问题单一Master问题采用多个(如3个)影子Master节点进行热备,一 旦主节点损坏,立刻选举一个新的主节点服务19GFS的解决办法 性能瓶颈问题单一Master问题尽可能减少数据存取中Master的参与程度不使用Master读取数据,仅用于保存元数据客户端缓存元数据采用大尺寸的数据块(64M)数据修改顺序交由Primary Chunk Server完成Simple, and good enough!20存储元数据文件系统目录管理与加锁与ChunkServer进行周期性通信 发送指令,搜集状态,跟踪数据块的完好性数据块创建、复制及负载均衡 对ChunkServer的空间使用和访问速度进行负载均衡,平 滑数据存储和访问请求的负载 对数据块进行复制、分散到ChunkServer上 一旦数据块冗余数小于最低数,就发起复制操作Master节点的任务21垃圾回收 在日志中记录删除操作,并将文件改名隐藏 缓慢地回收隐藏文件 与传统文件删除相比更简单、更安全陈旧数据块删除 探测陈旧的数据块,并删除Master节点的任务22采用中心服务器模式 可以方便地增加Chunk Server Master掌握系统内所有Chunk Server的情况,方便进行 负载均衡 不存在元数据的一致性问题GFS架构的特点23不缓存数据 GFS的文件操作大部分是流式读写,不存在大量的重复读 写,使用Cache对性能提高不大 Chunk Server上的数据存取使用本地文件系统,如果某 个Chunk读取频繁,文件系统具有Cache 从可行性看,Cache与实际数据的一致性维护也极其复杂GFS架构的特点?24在用户态下实现 直接利用Chunk Server的文件系统存取Chunk,实现简 单 用户态应用调试较为简单,利于开发 用户态的GFS不会影响Chunk Server的稳定性提供专用的访问接口 未提供标准的POSIX访问接口 降低GFS的实现复杂度GFS架构的特点25GFS的容错方法GFS的容错机制 Chunk Server容错 每个Chunk有多个存储副本(通常是3个),分别存储于不通 的服务器上 每个Chunk又划分为若干Block(64KB),每个Block对应一 个32bit的校验码,保证数据正确(若某个Block错误,则转 移至其他Chunk副本)26GFS的性能27Google云计算原理并行数据处理模型MapReduce摩尔定律 集成电路芯片上所集成的电路的数目, 每隔18个月就翻一番,同时性能也提升 一倍并行计算基础Gordon Moore“免费的性能大餐”? Andy given, and Bill taken away 软件算法、数据结构似乎不再重要,因为处理器性能不断 提升并行计算基础免费的午餐已经结束!IntelMicrosoft摩尔定律正在走向终结 单芯片容纳晶体管的增加,对制造工艺提出要求 CPU制造18nm技术,电子泄漏问题 CPU主频已达3GHz时代,难以继续提高 散热问题(发热太大,且难以驱散) 功耗太高并行计算基础未来的发展:多核在多核时代生存,必须考虑并发问题不存在解决多核编程问题的银弹, 不存在可以简单地将并发编程问题化 解掉的工具, 开发高性能的并行程序 必须要求开发者从根本上改变其编程 方法从某种意义上来说,这不仅仅是要改 变50年来顺序程序设计的工艺传统, 而且是要改变数百万年来人类顺序化思考问题的习 惯并行计算基础Herb Sutter串行编程 早期的计算里,程序一般是被串行执行的 程序是指令的序列,在单处理器的机器里,程序从开始 到结束,这些指令一条接一条的执行并行编程 一道处理可以被划分为几部分,然后它们可以并发地执 行 各部分的指令分别在不同的CPU上同时运行,这些CPU 可以存在于单台机器中,也可以存在于多台机器上,它们 通过连接起来共同运作并行计算基础什么样的问题适合并行计算? 斐波那契序列(Fibonacci)的计算?并行计算基础什么样的问题适合并行计算? 如果有大量结构一致的数据要处理,且数据可以分解成 相同大小的部分, 那我们就可以设法使这道处理变成 并行并行计算基础计算问题简单,但求解困难 待处理数据量巨大(PB级),只有分布在成百上千个节点 上并行计算才能在可接受的时间内完成 如何进行并行分布式计算? 如何分发待处理数据? 如何处理分布式计算中的错误?为什么需要MapReduce?简单的问题,计算并不简单!为什么需要MapReduce?Google MapReduce 架构设计师 Jeffrey DeanJeffery Dean设计 一个新的 抽象模型, 使我们只要执行 的简单计 算,而将并行化、 容错、数据分布、负载 均衡 的等杂乱细节 放在一个库里 ,使并行编程时不必关心它 们 这就是MapReduce一个软件架构,是一种处理海量数据的并行编程模 式用于大规模数据集(通常大于1TB)的并行运算MapReduce实现了Map和Reduce两个功能 Map把一个函数应用于集合中的所有成员,然后返回一个 基于这个处理的结果集 Reduce对结果集进行分类和归纳 Map()和 Reduce() 两个函数可能会并行运行,即使不是 在同一的系统的同一时刻MapReduceMapReduce示例:单词计数案例:单词记数问题(Word Count) 给定一个巨大的文本(如1TB),如何计算单词出现的数 目?MapReduce示例:单词计数使用MapReduce求解该问题 定义Map和Reduce函数MapReduce示例:单词计数使用MapReduce求解该问题 Step 1: 自动对文本进行分割,形成初始的 对MapReduce示例:单词计数使用MapReduce求解该问题 Step 2:在分割之后的每一对进行用户定义 的Map进行处理,再生成新的对MapReduce示例:单词计数使用MapReduce求解该问题 Step 3:对输出的结果集归拢、排序(系统自动完成)MapReduce示例:单词计数使用MapReduce求解该问题 Step 4:通过Reduce操作生成最后结果Google MapReduce执行流程源文件:GFSMap处理结果:本地存储Reduce处理结果:GFS日志:GFS文件存储位置思考Google MapReduce计算架构有 什么问题?Worker故障 Master 周期性的ping每个worker。如果master在一 个确定的时间段内没有收到worker返回的信息,那么它 将把这个worker标记成失效 重新执行该节点上已经执行或尚未执行的Map任务 重新执行该节点上未完成的Reduce任务,已完成的不 再执行Master故障 定期写入检查点数据 从检查点恢复MapReduce的容错WHY?任务备份机制 慢的workers 会严重地拖延整个执行完成的时间 由于其他的任务占用了资源 磁盘损坏 解决方案: 在临近结束的时候,启动多个进程来执行尚未 完成的任务 谁先完成,就算谁 可以十分显著地提高执行效率MapReduce的优化本地处理 Master 调度策略: 向GFS询问获得输入文件blocks副本的位置信息 Map tasks 的输入数据通常按 64MB来划分 (GFS block 大小 ) 按照blocks所在的机器或机器所在机架的范围进行调度 效果 绝大部分机器从本地读取文件作为输入,节省大量带宽MapReduce的优化跳过有问题的记录 一些特定的输入数据常导致Map/Reduce无法运行 最好的解决方法是调试或者修改 不一定可行 可能需要第三方库或源码 在每个worker里运行一个信号处理程序,捕获map或 reduce任务崩溃时发出的信号,一旦捕获,就会向master 报告,同时报告输入记录的编号信息。如果master看到一 条记录有两次崩溃信息,那么就会对该记录进行标记,下 次运行的时候,跳过该记录MapReduce的优化“实践是检验真理的唯一标准”实践证明,MapReduce是出色的分布式计算模型 Google宣布,其对分布于1000台计算机上的1TB数据进 行排序仅仅需要68s 对4000台计算机上的1PB数据进行排序处理仅需要6小时 2分钟(每次测试至少会损坏1块硬盘) 在08年1月份,Google MapReduce平均每天的数据处理 量是20PB,相当于美国国会图书馆当年5月份存档网络数 据的240倍Goolge的云计算分布式数据表BigTable53BigTable为什么需要设计BigTable? Google需要存储的数据种类繁多 网页,地图数据,邮件 如何使用统一的方式存储各类数据? 海量的服务请求 如何快速地从海量信息中寻找需要的数据?BigTable:基于GFS和Chubby的分布式存储系统 对数据进行结构化存储和管理 与GFS的联系54数据存储可靠性高速数据检索与读取存储海量的记录(若干TB)可以保存记录的多个版本Google的需求55与写操作相比,数据记录读操作占绝大多数工作负 载单个节点故障损坏是常见的磁盘是廉价的可以不提供标准接口 Google既能控制数据库设计,又
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号