云计算第二章总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Google云计算技术包括:
Google文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby、分布式结构化数据表Bigtable。
简述谷歌文件系统GFS:
GFS是一个大型的分布式文件系统,它为Goole云计算提供海量存储,并且与Chubby、MapReduce及Bigtable等技术结合十分紧密,处于所有核心技术的底层。
GFS将整个系统的节点分为哪几类角色:
Client(客户端)、Master(主服务器)、Chunk Server(数据块服务器)。
Master是GFS的管理节点,在逻辑上只有一个,他保存系统的元数据,负责整个文件系统的管理,是GFS文件系统中的“大脑”。
Chunk Server负责具体的存储工作。数据以文件的形式存储在Chunk Server 的个数可以有多个,他的数目直接决定了GFS的规模。GFS将文件按照固定大小进行分块,默认是64MB,每一块称为一个Chunk(数据块),每个Chunk都有一个对应的索引号(Index)。
GFS具有哪些特点:
1、采用中心服务器模式:GFS采用中心服务器模式管理整个文件系统,增加新的Chunk
Server是一件非常容易的事情。
2、不缓存数据:缓存机制是提升文件系统的性能的一个重要手段,通用文件系统为了提高
性能,一般需要实现复杂的缓存机制。GFS文件系统根据应用的特点,没有实现缓存,因为GFS的数据在Chunk Server上是以文件的形式存储。
3、在用户态下实现
4、只提供专用接口
GFS容错机制包含:
1、Master容错:
Master上保存了GFS文件系统的三种元数据。
(1)、命名空间,也就是整个文件系统的目录结构。
(2)、Chunk与文件名的映射表
(3)、Chunk副本的位置信息,每一个Chunk默认有三个副本。
前两种GFS通过操作日志来提供容错功能。第三种直接保存各个Chunk Server上,当master发生故障时,迅速恢复以上元数据。为了防止master彻底死机,GFS提供了master 远程的实时备份。
2、Chunk Server容错:
GFS采用副本的方式实现其容错。如果相关副本丢失或不可恢复,master自动将副本复制到其他Chunk Server.
GFS把每一个文件划分成多个Chunk,
GFS系统管理技术:
1、大规模集群安装技术
2、故障检测技术
3、节点动态加入技术
4、节能技术
分布式数据处理MapReduce:
什么是MapReduce?
Map(映射)Reduce(化简)是Google提出的一个软件架构,是一种处理海量数据的并行编程模式,用于大规模数据集的并行计算。
MapReduce封装了并行处理、容错处理、本地化计算、负载均衡等细节,还提供了一个接口。MapReduce把对数据集的大规模操作,分发给一个主节点管理下的各分节点共同完成,通过这种方式实现任务的可靠执行与容错机制。
MapReduce的容错机制:通过重新执行失效的地方来实现容错。
1、Master失效:master会周期性地设置检查点,并导出Master的数据。一旦某个任务失
效,系统就从最近的一个检查点恢复并重新执行。如果master失效终止整个MapReduce 重新开始。
2、Worker失效:
Master会周期性的给worker发送Ping命令,如果没有worker的应答,则master认为worker失效,终止对这个worker的任务调度,把失效的worker的任务调度到其他worker 上重新执行。
如何利用MapReduce进行数据排序:
1、对原始数据进行分割
2、对每个数据分块都启动一个Map进行处理。
3、对于Map之后
得到的中间结果,启动26各Reduce。
什么是分布式锁服务Chubby:
Chubby是1、Google设计的提供粗粒度锁服务的一个文件系统,2、它基于松耦合分布式系统,3、解决了分布的一致性问题。通过使用Chubby的锁服务,用户可以确保数据操作过程中的一致性。4、Chubby锁是一种建议性的锁而不是强制性的锁,这种选择使系统具有更大的灵活性。
Paxos算法中节点被分成了三种类型:proposers、acceptors、和learners,其中proposers提出决议,acceptors批准决议、learners获取并使用已经通过的决议。一个节点可以兼有多重类型,满足三个条件保持数据的一致性,(1)、决议只有在被Proposers提出后才能批准(2)、每次只能批准一个决议(3)、只有决议确定被批准后learners才能获取这个决议。
Chubby的设计目标主要有:
(1)、高可用性(2)、高扩展性(3)、支持粗粒度的建议性锁服务(4)、服务信息的直接存储(5)、支持通报机制(6)、支持缓存机制
Chubby文件系统:
Chubby系统本质上就是一个分布式的、存储大量小文件的文件系统,它所有的操作都是在文件的基础上完成的,系统规定每个节点的元数据都应包含以下四种单调递增的64位编号,(1)、实例号(2)、内容生成号(3)、锁生成号(4)、ACL生成号
Chubby采用的是ACL形式的安全保障措施,只要不被覆写,子节点都是直接继承父节点的ACL名。
什么是分布式结构化数据表Bigtable:
Bigtable是Google开发的基于GFS和Chubby的分布式存储系统,它的设计应达到以下几个目标:(1)、广泛的适用性(2)、很强的可扩展性(3)、高可用性(4)、简单性
Bigtable是一个分布式多维映射表,表中的数据通过一个行关键字、一个列关键字以及一个时间戳进行索引。
在Bigtable中Chubby主要有以下几个作用:
(1)、选取并保证同一时间内只有一个主服务器(Master Server)
(2)获取子表的位置信息
(3)保存Bigtable的模式信息及访问控制列表
Bigtable主要由三个部分组成:客户端程序库、一个主服务器和多个子表服务器
每个子表都是由多个SSTable以及日志文件构成。
在Bigtable系统的内部采用的是一种类似B+树的三层查询体系。
所有的子表地址都被记录在元数据表中,元数据表也是由一个个的元数据子表组成的。
为了减少访问开销,提高客户访问效率,Bigtable使用了缓存和预取技术。
在Bigtable中有三种形式的数据压缩,分别是次压缩、合并压缩、主压缩。
Bigtable性能优化:
1、局部性群组
2、压缩
3、布隆过滤器