Fork me on GitHub

Google三大论文

简介

Google File System、MapReuce以及Bigtable三驾马车可以说是大数据算法的起源,虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文,奠定了风靡全球的大数据算法的基础!

软件 下载地址
Google云计算三大论文英文版 点击下载
Google-File-System中文版 点击下载
Google-MapReduce中文版 点击下载
Google-Bigtable中文版 点击下载

那些年google发过的论文

1.按时间算第一篇的论文应该2003年公布的 Google File System,这是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。文件被分割成很多块,使用冗余的方式储存于商用机器集群上(基本上Google每篇论文都是关于“商用机型”)。

2.2004年发布的的 MapReduce现在基本上可以代表大数据。主要思想是将任务分解然后在多台处理能力较弱的计算节点中同时处理,将结果合并从而完成大数据处理,传说中Google使用它计算他们的搜索索引。Mikio L. Braun(柏林工业大学机器学习学博士后,TWIMPACT联合创始人兼首席数据科学家)认为其工作模式应该是:Google把所有抓取的页面都放置于他们的集群上,并且每天都使用MapReduce来重算。

3.Bigtable发布于2006年,启发了无数的NoSQL数据库,比如:Cassandra、HBase等等。Cassandra架构中有一半是模仿Bigtable,包括了数据模型、SSTables以及提前写日志(另一半是模仿Amazon的Dynamo数据库,使用点对点集群模式)。

Google并没有止步于MapReduce,事实上,随着Internet的指数增长,从零开始重算所有搜索索引变得不切实际,他们在MapReduce不适用的地方开发新方法,对于大数据领域来说这是个福音。MapReduce不是万能的。当然,你可以更深入一步,比如说将磁盘数据移入内存,然而同样还存在一些任务的内部结构并不是MapReduce可以扩展的。

2010年发表的 Percolator的论文中,Google展示了其网络搜索是如何保持着与时俱进。Percolator建立于已存类似Bigtable的技术,但是加入了事务以及行和表上的锁和表变化的通知。这些通知之后会被用于触发不同阶段的计算。通过这样的方式,个体的更新就可以“渗透”整个数据库。

在2010年,Google还公布了 Dremel论文。一个为结构化数据设计,并拥有类SQL语言的交互式数据库。然而取代SQL数据库使用字段填补的表格,Dremel中使用的是类JSON格式数据(更准确的说,使用Google Protocol buffer格式,这将加强对允许字段的限制)。内部,数据被使用特殊格式储存,可以让数据扫描工作来的更高效。查询被送往服务器,而优秀的格式可以最大性能的输出结果

Google还需要挖掘图数据,比如在线社交网络的社交图谱;所以他们开发了 Pregel,并在2010年公布其论文。论文陈述了许多算法的实现,比如Google的PageRank、最短路径、二分图匹配等。Mikio L. Braun认为,对比MapReduce或SPF,Pregel需要更多实现的再思考。

Google在2009年提出了Spanner远景计划,并在2012年对外公布Spanner–全球分布式数据库论文。Spanner的公布可以说是Google向大数据技术中添的又一把火,Spanner具有高扩展性、多版本、全球级分布以及同步复制等特性,跨数据中心的高扩展性及全球分布会对一致性保障提出苛刻的需求,读写的外部一致性和基于时间戳的全局读一致性。为了保障这一点,Google引入了TrueTime API。TureTime API可以同步全球的时间,拥有一个TT.now()的方法,将获得一个绝对时间,同时还能得到时间误差。为了保证万无一失,TrueTime API具有GPS和原子钟双保险。也只有这样的机制才能让全球范围内的并发处理得到保障。

在Google思路以及论文的启发下,同样涌现出一些开源项目,比如:Apache Drill、Apache Giraph、斯坦福GPS等等。

Google近年来每篇论文都有着深远的影响,同时大数据领域内有很多人必然在翘首以盼Google的下一篇论文。

Google-File-System(2003年)

文件被分割成很多块,使用冗余的方式储存于商用机器集群上

Google-MapReduce (2004年)

Mapreduce是针对分布式并行计算的一套编程模型


Google-Bigtable(2006年)

Bigtable发布于2006年,启发了无数的NoSQL数据库,比如:Cassandra、HBase等等

为了管理巨大的Table,把Table根据行分割,这些分割后的数据统称为:Tablets。每个Tablets大概有 100-200 MB,每个机器存储100个左右的 Tablets。底层的架构是:GFS。

由于GFS是一种分布式的文件系统,采用Tablets的机制后,可以获得很好的负载均衡。比如:可以把经常响应的表移动到其他空闲机器上,然后快速重建。

总结

MapReduce 和 BigTable都是以GFS为基础,三大基础核心技术构建出了完整的分布式运算架构。

大数据的出现是互联网技术发展的大势所趋,随着越来越多的智能化数字化应用,社交媒体信息爆炸,超级大公司的业务数据不断膨胀,需要从海量数据中挖掘发现有价值的信息来进行商务决策,企业管理,产品调整,支撑各种互联网+的公司,传统的高性能服务器加oracle等结构化数据库方案已经不足以满足需求。

谷歌本身就是一个体量巨大的全球性科技公司,旗下youtube,twitch,twitter,搜索业务,承载着互联网数据总量相当比重的处理压力,主动或者被动都要面对这个问题,从无到有地建立了一套技术体系之后,没有依靠技术垄断获取更大的利益,而是拿出了一整套解决方案的理论基础,可以说当前的这些分布式系统,框架,非结构化数据库,大部分都基于此,谷歌为互联网进入下个时代做出了极大的贡献,再次膜拜。

这是基于当前可观测事实的合理推测,事实上谷歌作为资本控制下的科技公司,做出这种大公无私的事可能性有但很小,大概率有自己的目的在里面,比如已经有了其他的解决方案,或许是另一个技术方向,用这些论文误导业界的发展方向,结果发现业界依然如火如荼┑( ̄Д  ̄)┍;比如是技术上又有了突破,把淘汰下来的技术拿出去给你们这些战五渣用(╯‵□′)╯︵┻━┻;又或者是有什么别的考量,遇上了瓶颈,把这些拿出来准备接受业界的反哺啦,跟某些团体有什么不可描述的py交易啦。这些都无所谓,论迹不论心,论心世上无完人,不管当时抱着什么目的,客观上确实极大地促进了大数据这个领域的发展,我宁愿相信谷歌出于公心出于科技界一员的责任感出于促进人类科技发展,主动自愿地发起了推动大数据领域前进的一系列行为,科技宅天下第一!!!

最后说一句,估计有巨多的人都听说过谷歌的三篇传奇论文推进一个领域的故事,但是看过论文并仔细研究过的没多少,毕竟术业有专攻,该领域的从业人员限定就能划掉大部分人,领域内分工不同,也不是人人都需要看这些,又划掉一部分,比如我就没看过,写这篇博客是因为最近又开始玩hbase和mongo,查资料越查越深,决定单独把这三篇奠基性的论文拿出来过一遍,顺便mark一下。

最最后说一句,论文是最为精确信息量最大的,但这种专业度极高的文献看起来超级麻烦,所以我推荐b站的一个教学视频【大数据系统基础】.MOOC.清华大学,可以说把GFS和MapReduce讲的相当透彻。

PS:b站超良心的,up主把视频搬过来排版调好放在那没有广告免费观看,还可以选择2倍速,资源贼多,真真的“我在b站看纪录片”。