云计算读书笔记(二)

标签: 云计算 读书 笔记 | 发表时间:2011-10-17 18:22 | 作者:skyme Gabriel
出处:http://www.cnblogs.com/

google云计算原理与应用

google云计算服务包括:google文件系统GFS,分布式计算编程模形MapReduce,分布式锁服务Chubby,分布式结构化数据表Bigtable,分布式存储系统Megastore以及分布式监控系统Dapper等。

GFS提供了海量数据的存储和访问能力。

GFS

系统架构:

分为三类角色,client(客户端),Master(主服务器)和Chunk Server(数据块服务器)

1,使用的是中心服务器模块,可以任意添加chunk server.

2,不实现缓存,这是从必要性和可行性两方面考虑。

必要性:客户端大部分是流式读写,不存在大量的重复读写。

可行性:如何维护缓存与实际数据之间一致性是一个极其复杂的问题。加之网络等不确定因素,一致性问题尤为复杂。而且数据量非常大,以当前的内存容量根本无法缓存。

而对于存储在GFS的Master中的数据实现了缓存。

3,在用户状态下实现,正常的文件系统是操作系统的重要组成部分,在内核态实现文件系统可以更好的和操作系统本身结合。

但GFS却选择在用户态下实现,主要基于以下考虑:

1)在用户态下直接利用操作系统提供的POSIX编程接口就可以扩展存取数据,无需了解内部的实现接口。

2)POSIX接口提供的功能更为丰富不受内核编程的限制

3)在用户态下有多种调试工具

4)用户态下,Master和Chunk Server都以进程的方式运行,单个进程不会影响整个操作系统

5)在用户态下,GFS和操作系统运行在不同的空间,两者的耦合性降低,方便GFS自身的扩展和升级

4,只提供专有的接口

容错机制:

1,Master容错

1)命名空间也就是整个文件系统的目录结构

2)Chunk与文件名的映射表

3)Chunk副本的位置信息,每一个Chunk默认有三个副本

2,Chunk Server容错

GFS采用副本的方式实现Chunk Server的容错,默认每个副本存储3个

GFS划分的每一个Chunk的默认大小是64MB

系统管理技术:

1)大规模的集群安装

2)故障检测

3)节点动态加入

4)节能

分存式数据处理MapReduce

MapReduce就是“映射”和“化简”的概念和主要思想。

比如查询一个大型文本中各个单词出现的次数,经过Map处理后,形成一批中间结果<单词,出现次数>,而Reduce函数处理中间结果,将相同单词出现的次数累加,得到每个单词出现的次数。

分存式锁服务

Chubby是Google设计的提供粗粒度服务的一个文件系统,它是基于松耦合的分布式系统。

通过使用Chubby的锁服务,用户可以确保数据操作过程中的一致性。

1,Paxos算法

paxos是一种基于消息传送的一致性算法,用于解决分布式中的一致性问题

如何解决分布式中的一致性问题呢,最简单的就是设置一个结点,所有操作都经过这个结点,这样就能保证唯一性的问题。

但是这样缺点也是显而易见的,就是如果结点失效就会出现混乱,所以需要在系统中设置多个这样的结点。

Paxos算法分成三个类型:proposers、acceptors和learners,其中Proposers提出决议,acceptors批准决议,learners获取并使用已经通过的决议。

2,Chubby系统设计

Chubby的设计目标主要有以下几个:

1)高可用性和高可靠性

2)高扩展性

3)支持粗粒度的建议性锁服务

4)服务信息的直接存储

5)支持通报机制

6)支持缓存机制

分存式结构化数据表Bigtable

Bigtable是Google基于GFS和Chubby的分布式存储系统。

Bigtable在很多方面跟数据库类似。

数据模型:

Bigtable是一个分布式的多维映射表,表中数据通过一个行关键字,一个列关键字以及一个时间戳进行索引。Bigtable对存储在其中的数据不做任何解析,一律看成是字符串。

1)行

可以是任意的字符串,但是大小不能超过64K,排序是根据行关键字进行排序的,推荐使用的是字典序

2)列

有列族的概念,族名:限定词(family:qualifier),族名必须有意义,限定词可以任意选定,同族被压缩存储在一起

族同时也是Bigtable中访问控制的基本单元,也就是说访问权限是在族这一级别上进行的

3)时间戳

默认是64位整数

目前提供两种设置,一种是保留最近N个不同的版本,另一种就是保留限定时间内的所有不同版本

系统架构:

Bigtable主要由三部分组成:客户端程序库(Client Library)、一个主服务器(Master Server)和多个子表服务器(Table Server)

客户端访问Bigtable服务时,首先利用函数库执行open操作打开一个锁,锁打开后客户端就可以跟子表服务器进行通信了。

主服务器的作用:

1)新子表分配

2)子表服务器状态监控

3)子服务器之间的负载均衡

子表服务器:

1)SSTable中的数据被划分成一个个的块(Block),每个块的大小是可以设置的,一般为64KB,在SSTable的结尾有一个索引(Index),在SSTable打开时这个索引会被加载进内存,所以查找的速度会非常快。

每个子表都是由多个SSTable和日志组成

2)子表地址,在Bigtable系统的内部采用的是一种类似B+树的三层查询体系

先查根子表,然后找到元数据子表,最后找到对应的用户表

3)子表的数据存储及读写操作

性能优化

1)局部性群组

2)压缩

3)布隆过滤器

分存式存储系统Megastore

Megastore:关系型数据库和NoSQL的完美结合

设计目标:

1)针对可用性:引入了Paxos算法

2)针对扩展性:采用数据分区将每个分区存放在NoSQL中

megastore的数据模型

通过类似SQL的方式进行查询,有一套对应的查询语言。

Megastore的核心技术-复制

1)复制的日志

2)数据读取 (1)本地查询 (2)发现位置 (3)追赶 (4)验证 (5)查询数据

3)数据写入 (1)接受leader (2)准备 (3)接受 (4)失效 (5)生效

分存式系统的监控基础框架Dapper

分布式监控系统

基本设计目标:

1)低开销

2)对应用层透明

3)可扩展性

作者: skyme 发表于 2011-10-17 18:22 原文链接

评论: 0 查看评论 发表评论


最新新闻:
· 关于应用商店的一些思考(2011-10-18 10:32)
· LEGO Life of George :虚实结合的新玩具(2011-10-18 10:30)
· 诺基亚探寻 NFC 的游戏之路(2011-10-18 10:24)
· 苹果 Siri 备受期待十大特征(2011-10-18 10:14)
· 微软演示试验性的投影触控技术(2011-10-18 10:11)

编辑推荐:我是如何学习计算机编程的

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

相关 [云计算 读书 笔记] 推荐:

云计算读书笔记(二)

- Gabriel - 博客园-首页原创精华区
google云计算服务包括:google文件系统GFS,分布式计算编程模形MapReduce,分布式锁服务Chubby,分布式结构化数据表Bigtable,分布式存储系统Megastore以及分布式监控系统Dapper等. GFS提供了海量数据的存储和访问能力. 分为三类角色,client(客户端),Master(主服务器)和Chunk Server(数据块服务器).

《精力管理》读书笔记-1

- 黎明 - 战隼的学习探索
这本书是我前几天阅读的,这是当时的阅读记录:. #每天一本书#,70天,2011年2月25日,阅读书籍《精力管理》这本书的理念不错,但内容水分很大. 但这个理论正好给自己的时间管理观点和规划做个补充,评价3.5分. 时间管理应该根据自己的精力进行安排和调整,周期性地补充精力,来平衡精力消耗. 需要对你的精力进行海战略性的规划和应用,并把它当成一种习惯.

分享读书笔记 Data Mining Concepts and Techniques

- redhobor - BlogJava-首页技术区
Data Mining涵盖的内容非常多,学着学着就走进乱石阵,看不到大的picture了,Data Mining Concepts and Techniques是本经典的好书,虽然有些细节并不详尽,(如果详尽就变成圣经了)可以用它来把data mining的知识点结成一张网. 它包括数据的预处理,frequent patterns,decision tree, netural network, regression, clustering, time series等等很多方面.

读书笔记:少有人走的路

- zhoujg - 博客园-周金根
       记得好像是五六年前在公司投稿后得到一本书,这本书叫做《少有人走的路》. 当时看了一下,简单翻阅之后发现看不下去了,于是一直搁置着. 后来有同事知道我有这本书,她们想我借阅,并且说是听别人介绍才知道这本书的. 我也不知道她们后来得了之后有什么感受,反正还给我之后我还是放着. 这本书于是就静静的在我这个搁置了好几年.

《思维导图》读书笔记

- Spectrophobia. - 读书笔记
今天分享的图书《思维导图》英国著名心理学家东尼·博赞在研究大脑的力量和潜能过程中,发现伟大的艺术家达·芬奇在他的笔记中使用了许多图画、代号和连线. 他意识到,这正是达芬奇拥有超级头脑的秘密所在. 在此基础上,博赞于19世纪60年代发明了思维导图这一风靡世界的思维工具. 这本书中过于夸大思维导图的作用而且废话过多,没有必须细读.

读书笔记 - How Google Test Software

- - CSDN博客研发管理推荐文章
(《谷歌如何测试软件》)的确为神秘谷歌公司揭开一层面纱,讲到了谷歌的代码文化和测试文化,讲到了角色划分,职责划分,测试种类划分,讲到优秀的不同角色的人应该具有什么样子的,讲到测试的创新和工具,还有大量的人物访谈. 这里的笔记主要包含:个人感兴趣的,值得备忘的,需要后续关注的东西记录.

《百问知识管理》读书笔记

- - 海涛的成长碎碎念
当时是为了买给妹子买 @秋叶 的大项目售前的那本书的,为了凑单免运费顺手把这本书也扔到了购物车里面,这也算是真爱了,支持大叔的同时还不忘支持下大叔的红颜知己,整本书大概花了两趟地铁的时间加上晚上睡觉前的一个多小时的时间看完的,不是很厚的一本很实用的工具手册. 公司部门在年中开会的时候提到了知识管理这块的一些东西,因为之前我一直在做个人知识管理的一些东西,业界除了一些企业知识管理的内容,所以部门知识管理这块就交给我在负责了,因为对企业知识管理大多了解都是理论上的,实践性的东西还真没怎么做过,还是有点发虚的,读完这本书算是松了口气.

《精益创业》读书笔记

- - CSDN博客推荐文章
        创业的过程是否可以总结、规范、提炼出共性和成功的方法. 《精益创业》无疑是这样的一本书,书中提到的很多创业观点其实平时我也领悟过,但是能以书面、可描述的语言总结出来,这是作者的厉害之处.         精益创业 (Lean Startup) 总结起来就是用3个动词驱动3个名词的轮回迭代过程:IPD -> BML ,即: .

《营养品的真相》读书笔记(1)

- Xiaoxi - 牛博山寨 编辑推荐
今天把我前段时间看的《营养品的真相》的阅读心得分享,本书的作者是营养学家布赖恩•克莱门特医生,书中书中的核心内容也就一二句话:在全世界销售的所谓天然营养补充品实际上都是在制药业的实验室里人工合成制造出来的,服用的结果是,它们对你的身体只有毒化作用. 所以现在应该尽量食用蔬果,谷物,最好是有机的,然后得搜寻安全产生的营养补充剂.

读书笔记:对线程模型的批评

- 阿贡 - 酷壳 - CoolShell.cn
——感谢Ian.Sian投递本文——. 多线程模型是主流的并发编程模型. 在过去几十年来,多线程模型一直是开发并发程序的有力工具. 1997年,NASA 的“火星探路者”号在执行任务的途中遭遇了严重的时序异常(参见 “What really happend on Mars“,注目 follow-up 中的现身说法),无法发回探测数据.