2013年3月31日星期日

Cloud_004:Google的云计算解决方案



Google的数据中心使用廉价的Linux PC机组成集群,在上面运行各种应用。即使是分布式开发的新手也可以迅速使用Google的基础设施。核心组件是三个:

1. GFS (Google File System)
一个分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统API接口。
Google根据自己的需求对它进行了特别优化,包括:超大文件的访问,读操作比例远超过写操作,PC机极易发生故障造成节点失效等。
GFS把文件分成64MB的块,分布在集群的机器上,使用Linux的文件系统存放。同时每块文件至少有3份以上的冗余。
中心是一个Master节点,根据文件索引,找寻文件块。详见Google的工程师发布的GFS论文。

2. MapReduce
Google发现大多数分布式运算可以抽象为MapReduce操作。
Map是把输入Input分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。
这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。

3. BigTable
一个大型的分布式数据库,这个数据库不是关系型数据库。像它的名字一样,就是一个巨大的表格,用来存储结构化的数据。

以上三个核心组件Google均有论文发表。
大家所熟知的Hadoop与这个三个核心组件的渊源如下:
Hadoop是项目的总称,起源于作者儿子的一只玩具大象的名字。主要是由HDFS、MapReduce和Hbase组成。
HDFS是Google File System(GFS)的开源实现。
MapReduce是Google MapReduce的开源实现。
HBase是Google BigTable的开源实现。

没有评论: