我所理解的谷歌云计算

来源:互联网 发布:360mac版在哪下载 编辑:程序博客网 时间:2024/06/17 12:17

    今天无聊,翻阅我的毕业论文时,看到了我当时写的关于谷歌云计算的相关东西。在此分享给大家,文中多处引用。请大家末见怪

 

    Google云计算核心技术主要包括:Google分布式文件系统GFS,主要提供海量数据的存储和访问的能力。编程模型MapReduce,主要应用于大规模的数据的并行运算。BigTable,主要提供对数据的分布式存储、访问。Chubby,分布式锁机制。下面将对GFS,MapReduce和BigTable技术进行详细的分析。

    GFS

GFS(Google File System)为Google搜索引擎提供了海量数据的分布式存储,它有4个方面的特点:(1)当大量节点失效时的软件容错性;(2)文件系统支持G级别的海量存储;(3)支持文件以追加方式批量写入;(4)支持多个客户端对一个文件的高并发性的写入操作。GFS采用大量廉价的服务器来构建分布式文件系统的物理层,这是GFS相比于其他分布式文件系统的创新点(如:IBM的GPFS,Sun的Lustre)。同时GFS在容错处理上,由文件系统来处理容错任务,利用软件的方法来解决系统的性能问题,极大降低了数据存储成本[25]。GFS的整体架构如图2.2所示:

图2.2 GFS整体架构


从上图可以看出,GFS是以GFS集群的形式存在,一个GFS集群是由一个主服务器(Master)和多个数据块服务器(Chunk Server)组成的,若干个客户端可以连续频繁访问这些具有数以千计的节点和超大存储空间的GFS集群。主服务器是GFS系统的管理节点,在逻辑上只有一个,主要用来存放元数据,包括文件命名空间、文件到块的映射、文件访问控制、块的物理位置等信息。数据块存服务器是用来存储具体的数据,数据以文件的形式按照固定的大小进行分割成块(默认大小是64M),每一个块称为一个Chunk,以Linux文件的形式存储在本地硬盘上。每一个Chunk都有相应的一个索引号,Client通过Master可以获取这个索引号[26]

客户端访问GFS时,首先通过文件名和Chunk索引在主服务器获取相应的数据块存服务器的句柄和位置信息。根据数据块存服务器的位置信息来完成数据的存取。在整个交互的过程中,客户端和主服务器之间并没有产生大量的数据流,而真正的数据流发生在客户端和数据块存服务器之间,这使得主服务器的负载极大的降低。同时,由于数据块存服务器上的文件以块的形式存放,使得客户端同时可以访问多个数据块服务器,提升了系统高度并发性。

2.3.2 MapReduce

MapReduce是谷歌提出的并行编程模式,用于大规模数据集的并行运算。MapReduce在对大数据进行处理时,由一个主节点管理下的大量分节点一起完成的。这种方式会保证任务执行的安全性和容错机制。同时,主节点会定时的对各个分节点的工作状态进行标记,如果分节点的状态不可用,则这个节点的所有任务将交由其它的节点重新执行。

MapRecude执行步骤如2.3所示:

                            

图2.3 MapReduce执行步骤图

(1)MapRecude函数库将元数据分成M快,每块在16M到64MB之间,处理程序开始在集群机器上执行。

(2)Master是特殊的执行程序,它给Work分配执行任务。总共有M个Map和R个Reduce任务,主控程序会选择空闲的Work分配Map任务或者Reduce任务。

(3)执行Map任务的Worker主机读取处理输入的数据片段,将分析的结果(<key,value>键值对)提交给Map函数。Map函数对<key,value>键值对进行分析计算,产生的中间结果并不直接写到磁盘,而是暂时缓存在内存中。

(4)这些缓存的数据定时写到本地磁盘,同时中间结果在存储的位置相关信息传递给Master,Master然后将这些位置信息发送给具有Reduce任务的Worker机器。

(5)当执行Reduce任务的Worker主机收到来自Master的中间<key,value>键值对的位置时,它调用远程过程从Map任务Worker主机的本地硬盘上读取处于缓冲的中间数据。当读到所有的中间数据,Reduce Work以中间key进行排序,相同key的值排列在一起。(key值不同的Map任务可能对应相同的Reduce任务,所以,排序是必需的)。如果Map函数产生的中间结果集非常大,就要使用另一种排序方法-外排序。

(6)执行Reduce任务的Worker机器通过每一个唯一中间key来遍历所有排序后的中间数据,并且把key和与key值相关的中间结果值集合传递给用户定义的Reduce函数。Reduce函数的结果最终输出到一个文件。

(7)当Map任务和Reduce任务都已全部完成的时候,Master激活应用程序,MapReduce返回用户程序的调用点[27]

通过这一系列的处理,就完成了一个大文件的处理。在整个处理的过程中,各个Map任务之间是独立的,这就达到了并行化的处理。一个Reduce操作就是对每个Map所产生的部分中间结果进行合并操作,经过Reduce处理的Map中间结果是互不交叉的。所有Reduce产生的结果经过连接操作就形成了最终完整的结果集,因此Reduce任务也可以并行的执

 

BigTable

作为云计算的支撑技术之一,云需要某种存储模式来保存虚拟机映像、应用程序和应用程序中的数据,因此在云中也具有数据库的概念。Google采用BigTable作为它的云数据库,BigTable是“键-值”的NoSQL结构的数据模型的典型代表,它的首要任务是保证Google快速搜索所涉及的海量数据。BigTable是构建在GFS之上的一个分布式存储系统,本质上它是稀疏的、分布式的、持久化存储的多维度排序Map。它的物理存储模式采用了类似数据结构中B+树索引组织表的模式,称为多维度的分类映射,其中的分支和叶节点可以分布在多台机器上,通过在成千台计算机上分布数据,提供了对PB级数据的快速访问。由于节点是分布式的,随着树的增长节点会拆分,根据应用需求量获得高伸缩性成为可能。

BigTable中的数据是一种无意义的字符串,所以数据存入BigTable之前,应用程序要对数据进行串行化。BigTable中的数据有三个索引,分别为行关键字(RowKey)、列关键字(ColumnKey)和时间戳(TimeStamp)。BigTable对存储在其中的数据不做任何解析,一律看做是字符串。BigTable的存储逻辑可以示为:

            (row:string,column:string,time:int64)string [28]

其中行是第一级索引,行键是大小在10-100字节之间的任意字符串。虽然 BigTable不支持一般意义上的事务,但行中数据的读写是原子性的。BigTable是按照行健的字典顺序进行数据维护。BigTable中的数据会随着行健的增大动态划分为片(tablet),tablet的大小在100MB到200MB之间,存储在不同的片服务器上。

列是BigTable的第二级索引,列会被划分为多个列族(column family),列族是基本的访问控制单元,列族中的数据类型是相同的。列族中的列是可以任意的变化的,列键是以Family:Qualifier的格式命名的。family是列族的名称,qualifier是列族中的列的名称[29]

时间戳是BigTable的第三级索引。BigTable中的数据按照时间戳来保存成多个版本。时间戳的具体值可以由BigTable自身进行赋值,也可以由客户端指定特定的值,BigTable的时间戳是64位整数。不同版本的数据是以时间戳降序的方式来存储的,所以系统先会读到最新的数据。

下面是结合GOA系统开发实例给出的一个完整的BigTable数据模型,用来描述公文实体数据,如图2.4所示:

    

图2.4 Bigtable数据模型

其中Table表示一张表,row表示1行的数据。Title,content,state,realseState,createName,createTime,createTime为该行的列,setting是一个列族,它包括两列:isSendTelephone,isSendMessage,这两列数据具有相同的特征类型,其中每一列保存不同的版本,以时间戳来区分。图2.5给出的例子有两行数据,伴随着行的增多,Table会根据行键自动划分为tablet,这些tablet会分布都不同的计算机上,tablet中的数据最终会存储到GFS文件系统中。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 网上买票不小心买成了学生票怎么办 做横幅标语字打出来老是歪的怎么办 创业板股票暂停上市后钱怎么办 新股东入股公司之前的亏损怎么办 目前公司账面亏损有人要入股怎么办 土地确权后没有土地的人怎么办 老板不发工资跑路了怎么办 别人登录了我的美团账号怎么办 月嫂家政公司快坚持不下去了怎么办 华硕飞马4a手机发热怎么办 超级必发指数手机页面没曲线怎么办 唐小僧理财暴雷了投资者该怎么办 教师资格证面试准考证号忘了怎么办 初中学校说处分不给毕业证怎么办? 自动档一键打火的车没电了怎么办 物流代收货款一直拿不到钱怎么办 丰巢快递柜收不到验证码怎么办 拼多多三级惩罚下架3天怎么办 在万达买的衣服穿一次烂了怎么办 内蒙古对于没有地的农民改怎么办 微信号码重新注册后回零钱怎么办 安卓系统文件苹果手机打不开怎么办 课题必须发表论文吗?查重怎么办 学信网学籍绑定输错5次怎么办 大学学校图书馆借的书丢了怎么办 借阅机里的图书不显示书名怎么办 苹果6s锁屏密码忘了怎么办 父亲去世后妈将父亲存款带走怎么办 狗和别的狗打架腿瘸了怎么办 神经病砍人警察不积极处理怎么办 才买了车里面的气味很大怎么办 家里装修两年了很大的木味怎么办 装修一年的房子夏天味很大怎么办 死了怕下地狱活着又受煎熬怎么办 狗狗的疫苗证丢了怎么办 剃了毛的狗不睡觉怎么办 家里的小狗送人了孩子一直哭怎么办 半个月的小狗一天没拉屎怎么办 把狗狗的毛剃了怎么办 用了维a酸乳膏过敏怎么办 药水点痣留下的红印怎么办