- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
云计算与数据挖掘;内 容 提 纲;云计算概念与现状;云计算的起源;云计算发展的驱动因素;云计算的定义;云计算技术体系结构;Google云计算关键技术;微软的节能措施;Google云计算原理;Google需要一个支持海量存储的文件系统
购置昂贵的分布式文件系统与硬件?
;为什么不使用当时现存的文件系统?
Google所面临的问题与众不同
不同的工作负载,不同的设计优先级(廉价、不可靠的硬件)
需要设计与Google应用和负载相符的文件系统
;GFS的假设与目标;将文件划分为若干块(Chunk)存储
每个块固定大小(64M)
通过冗余来提高可靠性
每个数据块至少在3个数据块服务器上冗余
数据块损坏概率?
通过单个master来协调数据访问、元数据存储
结构简单,容易保持元数据一致性
无缓存
Why?
;单一Master, 若干ChunkServer;;分布式系统设计告诉我们:
这是单点故障
这是性能瓶颈
GFS的解决办法
单点故障问题;GFS的解决办法
性能瓶颈问题;存储元数据
文件系统目录管理与加锁
与ChunkServer进行周期性通信
发送指令,搜集状态,跟踪数据块的完好性
数据块创建、复制及负载均衡
对ChunkServer的空间使用和访问速度进行负载均衡,平滑数据存储和访问请求的负载
对数据块进行复制、分散到ChunkServer上
一旦数据块冗余数小于最低数,就发起复制操作
;垃圾回收
在日志中记录删除操作,并将文件改名隐藏
缓慢地回收隐藏文件
与传统文件删除相比更简单、更安全
陈旧数据块删除
探测陈旧的数据块,并删除
;采用中心服务器模式
可以方便地增加Chunk Server
Master掌握系统内所有Chunk Server的情况,方便进行负载均衡
不存在元数据的一致性问题
;不缓存数据
GFS的文件操作大部分是流式读写,不存在大量的重复读写,使用Cache对性能提高不大
Chunk Server上的数据存取使用本地文件系统,如果某个Chunk读取频繁,文件系统具有Cache
从可行性看,Cache与实际数据的一致性维护也极其复杂
;在用户态下实现
直接利用Chunk Server的文件系统存取Chunk,实现简单
用户态应用调试较为简单,利于开发
用户态的GFS不会影响Chunk Server的稳定性
提供专用的访问接口
未提供标准的POSIX访问接口
降低GFS的实现复杂度
;GFS的容错方法;;Google云计算原理;摩尔定律
集成电路芯片上所集成的电路的数目,每隔18个月就翻一番,同时性能也提升一倍;“免费的性能大餐”?
Andy given, and Bill taken away
软件算法、数据结构似乎不再重要,因为处理器性能不断提升;摩尔定律正在走向终结…
单芯片容纳晶体管的增加,对制造工艺提出要求
CPU制造18nm技术,电子泄漏问题
CPU主频已达3GHz时代,难以继续提高
散热问题(发热太大,且难以驱散)
功耗太高
;在多核时代生存,必须考虑并发问题
不存在解决多核编程问题的银弹, 不存在可以简单地将并发编程问题化解掉的工具, 开发高性能的并行程序必须要求开发者从根本上改变其编程方法
从某种意义上来说,这不仅仅是要改变50年来顺序程序设计的工艺传统, 而且是要改变数百万年来人类顺序化思考问题的习惯;串行编程
早期的计算里,程序一般是被串行执行的
程序是指令的序列,在单处理器的机器里,程序从开始到结束,这些指令一条接一条的执行
并行编程
一道处理可以被划分为几部分,然后它们可以并发地执行
各部分的指令分别在不同的CPU上同时运行,这些CPU可以存在于单台机器中,也可以存在于多台机器上,它们通过连接起来共同运作;什么样的问题适合并行计算?
斐波那契序列(Fibonacci)的计算?;什么样的问题适合并行计算?
如果有大量结构一致的数据要处理,且数据可以分解成相同大小的部分, 那我们就可以设法使这道处理变成并行;计算问题简单,但求解困难
待处理数据量巨大(PB级),只有分布在成百上千个节点上并行计算才能在可接受的时间内完成
如何进行并行分布式计算?
如何分发待处理数据?
如何处理分布式计算中的错误?
;;一个软件架构,是一种处理海量数据的并行编程模式
用于大规模数据集(通常大于1TB)的并行运算
MapReduce实现了Map和Reduce两个功能
Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集
Reduce对结果集进行分类和归纳
Map()和 Reduce() 两个函数可能会并行运行,即使不是在同一的系统的同一时刻
;MapReduce示例:单词计数;MapReduce示例:单词计数;MapReduce示例:单词计数;MapReduce示例:单词计数;Ma
文档评论(0)