物联网漫谈云计算之二newPPT课件.ppt

上传人:优*** 文档编号:128032660 上传时间:2020-04-07 格式:PPT 页数:113 大小:6.35MB
返回 下载 相关 举报
物联网漫谈云计算之二newPPT课件.ppt_第1页
第1页 / 共113页
物联网漫谈云计算之二newPPT课件.ppt_第2页
第2页 / 共113页
物联网漫谈云计算之二newPPT课件.ppt_第3页
第3页 / 共113页
物联网漫谈云计算之二newPPT课件.ppt_第4页
第4页 / 共113页
物联网漫谈云计算之二newPPT课件.ppt_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《物联网漫谈云计算之二newPPT课件.ppt》由会员分享,可在线阅读,更多相关《物联网漫谈云计算之二newPPT课件.ppt(113页珍藏版)》请在金锄头文库上搜索。

1、漫谈云计算 计算模型 1 云计算模型 为了解决云中服务器群之间的通信和协作 Google提出了被后人称为云计算三大法宝的GFS BigTable和MapReduce技术 建立了采用云计算解决问题时的计算模型 正是这些技术才使得Google可以让几十万台甚至上百万台计算机一起形成 云 组成强大的数据中心 2 分布式文件系统GFSGoogleDistributedFileSystem 3 Google云计算原理 3 什么是文件系统 FAT FAT32 NTFS EXT 用于持久地存储数据的系统通常覆盖在底层的物理存储介质上硬盘 CD 磁带等数据组织的基本单元 文件具有文件名 1 txt 通常支持层

2、次化嵌套 目录结构 文件系统基础 4 4 文件路径文件与目录的结合 用于定位文件绝对路径 C home aaron foo txt相对路径 docs someFile doc所有规范路径的集合构成了文件系统的目录结构 文件系统基础 5 5 文件系统的存储内容主要内容 用户的实际数据元数据 驱动器元数据与文件元数据 文件系统基础 6 6 文件分块存储文件系统设计的考虑因素最小存储单元较小可减少浪费空间 较大则可提高文件顺序读取速度 随机访问呢 文件系统的设计目标是提高访问速度还是提高使用率 文件系统的安全性多用户环境下的文件安全读 写权限分配文件附带访问控制列表 ACL 文件系统缓存提高文件系统

3、读写效率 文件系统基础 7 7 为什么不使用当时现存的文件系统 Google所面临的问题与众不同不同的工作负载 不同的设计优先级 廉价 不可靠的硬件 需要设计与Google应用和负载相符的文件系统 Google设计GFS的动机 8 8 GFS的假设与目标 硬件出错是正常而非异常系统应当由大量廉价 易损的硬件组成必须保持文件系统整体的可靠性主要负载是流数据读写主要用于程序处理批量数据 而非与用户的交互或随机读写数据写主要是 追加写 插入写 非常少需要存储大尺寸的文件存储的文件尺寸可能是GB或TB量级 而且应当能支持存储成千上万的大尺寸文件 9 9 将文件划分为若干块 Chunk 存储每个块固定大

4、小 64M 通过冗余来提高可靠性每个数据块至少在3个数据块服务器上冗余数据块损坏概率 通过单个master来协调数据访问 元数据存储结构简单 容易保持元数据一致性无缓存Why GFS的设计思路 10 10 单一Master 若干ChunkServer GFS的架构 1 文件存储方式2 数据读写流程 GFS的架构有什么问题吗 11 11 分布式系统设计告诉我们 这是单点故障这是性能瓶颈GFS的解决办法单点故障问题 单一Master问题 采用多个 如3个 影子Master节点进行热备 一旦主节点损坏 立刻选举一个新的主节点服务 12 12 GFS的解决办法性能瓶颈问题 单一Master问题 尽可能

5、减少数据存取中Master的参与程度 不使用Master读取数据 仅用于保存元数据 客户端缓存元数据 采用大尺寸的数据块 64M 数据修改顺序交由PrimaryChunkServer完成 13 13 存储元数据文件系统目录管理与加锁与ChunkServer进行周期性通信发送指令 搜集状态 跟踪数据块的完好性数据块创建 复制及负载均衡对ChunkServer的空间使用和访问速度进行负载均衡 平滑数据存储和访问请求的负载对数据块进行复制 分散到ChunkServer上一旦数据块冗余数小于最低数 就发起复制操作 Master节点的任务 14 14 垃圾回收在日志中记录删除操作 并将文件改名隐藏缓慢地

6、回收隐藏文件与传统文件删除相比更简单 更安全陈旧数据块删除探测陈旧的数据块 并删除 Master节点的任务 15 15 采用中心服务器模式可以方便地增加ChunkServerMaster掌握系统内所有ChunkServer的情况 方便进行负载均衡不存在元数据的一致性问题 GFS架构的特点 16 16 不缓存数据GFS的文件操作大部分是流式读写 不存在大量的重复读写 使用Cache对性能提高不大ChunkServer上的数据存取使用本地文件系统 如果某个Chunk读取频繁 文件系统具有Cache从可行性看 Cache与实际数据的一致性维护也极其复杂 GFS架构的特点 17 17 在用户态下实现直

7、接利用ChunkServer的文件系统存取Chunk 实现简单用户态应用调试较为简单 利于开发用户态的GFS不会影响ChunkServer的稳定性提供专用的访问接口未提供标准的POSIX访问接口降低GFS的实现复杂度 GFS架构的特点 18 18 GFS的容错方法 GFS的容错机制ChunkServer容错每个Chunk有多个存储副本 通常是3个 分别存储于不同的服务器上每个Chunk又划分为若干Block 64KB 每个Block对应一个32bit的校验码 保证数据正确 若某个Block错误 则转移至其他Chunk副本 19 19 GFS的容错方法 GFS的容错机制Master容错三类元数据

8、 命名空间 目录结构 Chunk与文件名的映射以及Chunk副本的位置信息前两类通过日志提供容错 Chunk副本信息存储于ChunkServer Master出现故障时可恢复 20 20 超过50个GFS集群每个集群包含数千个存储节点管理着PB 1015Byte 万亿字节 级的数据 GFS在Google中的部署 21 21 并行数据处理模型MapReduce Google云计算原理 22 在多核时代生存 必须考虑并发问题不存在解决多核编程问题的银弹 不存在可以简单地将并发编程问题化解掉的工具 开发高性能的并行程序必须要求开发者从根本上改变其编程方法从某种意义上来说 这不仅仅是要改变50年来顺序

9、程序设计的工艺传统 而且是要改变数百万年来人类顺序化思考问题的习惯 并行计算基础 HerbSutter 23 串行编程早期的计算里 程序一般是被串行执行的程序是指令的序列 在单处理器的机器里 程序从开始到结束 这些指令一条接一条的执行并行编程一道处理可以被划分为几部分 然后它们可以并发地执行各部分的指令分别在不同的CPU上同时运行 这些CPU可以存在于单台机器中 也可以存在于多台机器上 它们通过连接起来共同运作 并行计算基础 24 什么样的问题适合并行计算 斐波那契序列 Fibonacci 的计算 并行计算基础 25 什么样的问题适合并行计算 如果有大量结构一致的数据要处理 且数据可以分解成相

10、同大小的部分 那我们就可以设法使这道处理变成并行 并行计算基础 26 MapReduce 分布式计算编程模式 MapReduce是Google提出的一个软件框架 以支持在大规模集群上的大规模数据集 通常大于1TB 的并行计算 这是真正涉及云计算中的计算模型 27 MapReduce软件架构 MapReduce架构设计是受函数式程序设计中的两个常用函数Map 映射 和Reduce 化简 的启发 用来开发Google搜索结果分析时大量计算的平行化处理 比如文献词频的计算 在函数式程序设计中 map和reduce都是构建高阶函数的工具 28 map map将某个给定的作用于某类元素的函数应用于该类元

11、素的列表 并返回一个列表 其中的元素是该函数作用到原列表中的每个元素得到的结果 比如 mapf v1 v2 vn f v1 f v2 f vn 从这里可以看出 这些f函数的计算是可以平行计算的 这也是MapReduce计算模型对于高性能要求的应用以及平行计算领域的需求非常适合 对于大量数据要做同样的计算的时候 就可以把数据进行划分 然后分配到不同的机器上来分别作计算 29 reduce reduce 或称为fold 将一个列表中的元素按某种计算方式 函数 进行合并 比如把一个二元运算f扩展到n元运算 reducef v1 v2 vn f v1 reducef v2 vn f v1 f v2 r

12、educef v3 vn f v1 f v2 f f vn 1 vn MapReduce计算模型将上面map操作的计算中间结果采用reduce进行合并 以得到最后结果 30 计算问题简单 但求解困难待处理数据量巨大 PB级 只有分布在成百上千个节点上并行计算才能在可接受的时间内完成如何进行并行分布式计算 如何分发待处理数据 如何处理分布式计算中的错误 为什么需要MapReduce 简单的问题 计算并不简单 31 为什么需要MapReduce GoogleMapReduce架构设计师JeffreyDean JefferyDean设计一个新的抽象模型 使我们只要执行简单计算 而将并行化 容错 数据

13、分布 负载均衡的等杂乱细节放在一个库里 使并行编程时不必关心它们这就是MapReduce 32 一个软件架构 是一种处理海量数据的并行编程模式用于大规模数据集 通常大于1TB 的并行运算MapReduce实现了Map和Reduce两个功能Map把一个函数应用于集合中的所有成员 然后返回一个基于这个处理的结果集Reduce对结果集进行分类和归纳Map 和Reduce 两个函数可能会并行运行 即使不是在同一的系统的同一时刻 MapReduce 33 MapReduce示例 单词计数 案例 单词记数问题 WordCount 给定一个巨大的文本 如1TB 如何计算单词出现的数目 34 MapReduc

14、e示例 单词计数 使用MapReduce求解该问题定义Map和Reduce函数参看http hadoop apache org common docs current mapred tutorial html 35 源代码示例 publicvoidmap LongWritablekey Textvalue OutputCollectoroutput Reporterreporter throwsIOException 19 Stringline value toString 20 StringTokenizertokenizer newStringTokenizer line 21 while

15、 tokenizer hasMoreTokens 22 word set tokenizer nextToken 23 output collect word one 24 25 26 27 28 publicstaticclassReduceextendsMapReduceBaseimplementsReducer 29 publicvoidreduce Textkey Iteratorvalues OutputCollectoroutput Reporterreporter throwsIOException 30 intsum 0 31 while values hasNext 32 s

16、um values next get 33 34 output collect key newIntWritable sum 35 36 36 MapReduce示例 单词计数 使用MapReduce求解该问题Step1 自动对文本进行分割 37 MapReduce示例 单词计数 使用MapReduce求解该问题Step2 在分割之后的每一对进行用户定义的Map进行处理 再生成新的对 38 MapReduce示例 单词计数 使用MapReduce求解该问题Step3 对输出的结果集归拢 排序 系统自动完成 39 MapReduce示例 单词计数 使用MapReduce求解该问题Step4 通过Reduce操作生成最后结果 40 GoogleMapReduce执行流程 1 处理流程2 分片方式 41 MapReduce的执行过程 首先将数据文件切分成M片 然后启动集群上的多个程序拷贝 一份特殊的拷贝是master 其它的均为worker master将map或reduce任务分配给空闲的worker 被赋予map任务的worker读入相应输入数据片内容 分析其键 值对并将其传递给用户定义

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

当前位置:首页 > 高等教育 > 大学课件

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