IT行业以外的人可能很少知道,谷歌是世界上最强的软件开发商。2016年,谷歌开发的围棋软件阿尔法狗(Alpha-Go)战胜了韩国最强的围棋选手李世石。这一消息震惊了世界,但谷歌最先进的技术不仅是AI。
2005年前后,谷歌就拥有了世界上最强的大数据处理软件。1998年,以“To organize the world’s information and make it universally accessible and useful(整合世界上的信息,让所有人都能获得和使用)”为愿景进行创业的谷歌,在开发搜集世界上所有网页信息的搜索引擎时,最早碰到了“大数据处理”这个难题。
搜索引擎服务需要检查世界上所有网页的数据,制作检索索引。检索索引就是将单词以及包含该单词网页的URL(统一资源定位符)进行连接的“目录”。为了将用户输入的“检索词关键”与检索结果进行匹配,检索索引是不可或缺的。此外,谷歌为了在互相连接的网页中算出每个网页的重要度,导入了PageRank(网页排名)算法。
谷歌创业的20世纪末,一台计算机的硬盘容量最大是几个GB左右。当从网页收集的数据在GB量级时,当时的计算机可以制作出检索索引和PageRank。但当数据量增加到GB的1000倍,达到TB量级时,一台计算机是无法应对的。谷歌这时候面对的问题是如何快速处理TB量级的数据。
为了让计算机处理TB量级的数据,谷歌采用了如下做法:它把数十到数百台计算机连接在一起,将一台计算机无法处理的数据分成小份分别保存在大量的计算机里,通过各台计算机进行分散处理。但在当时,分散处理只在超级计算机中实现了商用化。对于当时像谷歌那样缺乏资金的创业公司而言,购买昂贵的超级计算机是不现实的。为此,谷歌开始开发利用PC服务器实现分散处理的软件。
谷歌首先开发的是,在数百台以上PC服务器上保存大数据的“分散文件系统”。它被称为“GFS(Google File Sys-tem,谷歌文件系统)。”GFS将海量的数据文件分割在64M的区域中,该区域被称为“chunk(块)”,各chunk至少复制3个以上,然后将其分散配置在联网的PC中。当读取数据时,各台PC服务器一起集聚在chunk中。这样的话,数据的读取处理可以在多台PC服务器中同时进行,比起保存在一台PC服务器上,数据读取的速度可以实现PC服务器台数单位的高速化。数据保存的容量也随着PC服务器的增加而不断增加。之所以制造3个备份,是为了防止即便保存chunk的一台PC服务器发生故障,也可以从其他的PC服务器中读取数据。
谷歌进一步开发了将GFS上各台PC服务器保存的数据在各自PC服务器上进行处理的“MapReduce”架构。一般计算机的架构是存储装置上保存的数据先在计算机上读取,然后再处理。与此相反,MapReduce数据是在保存该数据的GFS的PC服务器上直接进行处理。数据不必从存储装置导出放在计算机上进行读取。另外,MapReduce的数据处理能力随着GFS的PC处理器的增加而加快。(www.daowen.com)
分散处理最大的优势是随着PC服务器数量的增加,数据的存储能量和处理能力会随之增强。这种方法在IT行业里被称为“Scale Out(横向扩展)”。与此相反,传统的企业信息系统,一般都采取通过导入巨型计算机和存储装置的方法来实现数据保存容量和处理能力的提升。这种方法被称为“Scale Up(纵向扩展)”。谷歌需要处理的大数据的数量,无论多大的巨型计算机,一台也难以处理完成。所以,谷歌选择了“Scale Out”而不是“Scale Up”的方式。
另外,比一般计算机处理能力高出10倍的巨型计算机的价格,并不是一般计算机的10倍。这个价格是100倍可能也很正常。Scale Up的方法成本昂贵。而Scale Out的方法只需增加便宜计算机的数量,就可以增强处理能力。由于Scale Out是通过联网计算机处理的方法,台数增加10倍不等于处理能力增加10倍,大概是与台数成比例的处理能力提升。Scale Out在性能和价格两方面都比Scale Up有优势。
除此以外,Scale Out还有一个优势,那就是系统整体可靠性的提升。由于GFS是数据在复制的基础上进行分散的,即便是构成GFS的服务器中有几台发生故障,处理也能继续。但是,如果采用了Scale Up的方式,如果这仅有的一台巨型计算机发生故障,系统就会宕机。当然如果配备两台巨型计算机,一台计算机故障时,另一台也可以工作。但是它的成本就会增加一倍。
谷歌建立了自己的数据中心。据说配备了数百万台的PC处理器,使用自己开发的分散软件处理大数据。2004年8月,谷歌一个月内就使用MapReduce处理了3288TB(约3PB)的数据。2006年5月,月处理52254TB(约52PB)的数据。2007年9月,月处理403152TB(约400PB)的数据。2009年7月,月处理544130TB(约540PB)的数据。2010年5月,月处理946460TB(约940PB)的数据。2010年,谷歌月处理的数据达到1000PB,也就是1EB的水平。可以处理这种量级数据的公司,当时或许只有谷歌能做到。
谷歌从2000年以后就采用自己开发数据中心的服务器,然后交由台湾的ODM(原始设计制造商)进行生产。根据美国媒体报道,谷歌在2009年已经是仅次于戴尔、惠普的世界第三的服务器厂家。谷歌从2007年开始自己制造互联网设备,现在已经拥有自己的海底电缆。今天的谷歌已经是世界上最强的计算机制造商之一。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。