我的反应总是很迟钝。
直到查看邮件列表的时候发现大家已经开始再讨论Google开发者日的邀请码的时候,我才慌忙跑到它的老巢, [url]http://code.google.com/intl/zh-CN/events/developerday/2008/home.html[/url]
而正是往里边这么一匆匆一瞥的时候,我瞥见了“云计算”,我刚开始还想当然的认为又在玩弄集群的概念。
 
然而事实完全不是这样!
 
现在Google把这个集群技术的概念延伸开来,即将软件和数据分布在整个WEB世界中,数据的处理也将由大批上网的个人电脑以分布式的形式来实现
——Google的使命已经开始从原来的“整合人类信息”,转变到现在的“做全球计算机”了!
 
以下是官方给的一点提示:
云计算是一种新兴的共享基础架构的方法,是一种全新的商业模式,也是业界最新最热门的话题之一。本讲座将向您介绍Google公司在应用、发展和推广云计算技术方面的一些经验,具体内容包括Google公司在云计算实践中使用的一些工具 (GFS, MapReduce, Bigtable等), Google与高校合作推广云计算理念的情况及云计算的机遇。
 
我在上篇post(去Google工作!)里面曾经提到过Google的集群技术的一些细节,即上面说的GFS, MapReduce, Bigtable等,现在在这里做一些简单介绍,当然还只是一点点皮毛:

Google File System
Google公司目前所有的产品,都在以“无约束”为哲学标准来进行开发。这里的无约束,Google公司解释为“infinite storage, bandwidth, and CPU power”,即无限存储,无限带宽,无限运算能力。让这个可能的就是GFS,BigTable,MapReduce等一系列集群技术,而其中最为基础的就是Google优秀的文件系统GFS。
简单来讲,GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。
GFS与过去的分布式文件系统有很多相同的目标,比如效率,可扩展性,可靠性和可用性。[gfs-sosp2003]([ ]——具体的参见该论文,我会将它们附在后面提供下载,在GoogleLabs也可以找到,不过你需要穿墙。下同)
再强调一次,由于GFS是一种分布式的文件系统,因此采用该机制后,可以获得很好的负载均衡。比如:可以把经常响应的表移动到其他空闲机器上,然后快速重建。
 
MapReduce
MapReduce是Google开发的编程模型(或者说框架),用于大规模数据集的并行运算(也可以那MapReduce理解成一种分布式调度算法)。概念"Map(映射)"和"Reduce(化简)",和他们的主要思想,都是从函数式编程语言里借来的特性。[mapreduce-osdi04]
对于大数据量的计算,通常采用的处理手法就是并行计算。MapReduce就是一种简化并行计算的编程模型,它让那些没有多少并行计算经验的开发人员也可以开发并行应用。通过简化编程模型,降低了开发并行应用的入门门槛。相对于现在普通的开发而言,并行计算需要更多的专业知识,有了MapReduce,并行计算就可以得到更广泛的应用。MapReduce的名字源于这个模型中的两项核心操作:Map和Reduce。这些都是Functional Programming(FP,函数式语言)的特性。
MapReduce所用的思想叫做Skeletal Parallelism,在1989年以前就出现了,当时叫Algorithmic
Skeletons 。在近十多年欧洲的并行计算程序设计语言的研究中,它从来就没中断过,即便是在初期所取得的成果也远远超出MapReduce这个技术里需要用到的内容。见
 
BigTable
Bigtable是设计来分布存储大规模结构化数据的,从设计上它可以扩展到上2^50字节,分布存储在几千个普通服务器上。Google公司的很多项目使用 BT来存储数据,包括网页查询,google earth和google金融。这些应用程序对BT的要求各不相同:数据大小(从URL到网页到卫星图象)不同,反应速度不同(从后端的大批处理到实时数据服务)。对于不同的要求,BT都成功的提供了灵活高效的服务[bigtable,2006]
BT拥有以下的特点:分布式,可扩展,高冗余性,抗压,定位迅速,读写快速,节约存储空间
简单的说BT就是将数据组织到表、行、列中。
 
 
如果你想更深入的话,除了这几篇参考文献之外,强烈建议你去研究一下Hadoop.Hadoop是一个用于运行应用程序于大型集群的的框架。它实现了MapReduce算法,并且HBase和HDFS分别对应Google的GFS和BigTable。可以说他是对Google GFS等的一个Clone。
[url]http://hadoop.apache.org/[/url] 
Nutch0.8以后也根据Hadoop改写了自己的代码(其实是许多年前的陈年往事...)。对搜索引擎感兴趣的不妨看看。