`

海量数据的存储计算和查询--Google系列论文译

阅读更多
大概两年前,写过一篇<<大数据量,海量数据 处理方法总结>>,之后应该被转载甚多,估计很多人看到过。当时更多的解决的是面试场景的问题,介绍的都是些基础的数据结构。实际上与实际的海量数据处理还有些距离,可以用来准备下面试,但是真正的海量数据处理都是建立在很多系统之上的,当然它们底层也会用到各种数据结构。

进来比较流行的是云计算,NoSql。Hadoop也逐渐成为很多公司的生产系统。大概去年开始阅读分布式相关的论文,为了加深印象我通常会翻译出来。作为一种阶段性的总结,把一些东西整理了一下。整个Hadoop完全建立在Google所发表的几篇论文之上,除Google这个系列之外,Amazon的Dynamo也是另一个重要的NoSql分支。这次整理的主要是Google发表的奠定云计算基础的几篇论文还有一个关于海量数据存储计算查询的综述性文章,包含如下几篇:

Cluster:发表于2003年,主要介绍Google的集群架构,对Google搜索系统的架构也进行了简单介绍

GFS:发表于2003年,介绍了Google分布式文件系统的设计及实现。Hadoop中与之对应的是HDFS

MapReduce:发表于2004年,介绍了分布式的编程模型MapReduce。Hadoop中与之对应的是Hadoop MapReduce

BigTable:发表于2006,介绍了建立在GFS之上的结构化数据存储系统,Hadoop中与之对应的是HBase

Chubby:发表于2006年,分布式锁服务系统,利用了很多现有的思想,尤其是分布式系统中的很多基础理论。Hadoop中与之对应的是Zookeeper

Sawzall:发表于2006年,建立在MapReduce之上的分布式查询脚本语言。Hadoop中与之对应的是Pig Hive等

GFS访谈录:Kirk McKusick&Sean Quinlan关于GFS的起源和演化的访谈内容。可能比GFS本身更有意思。

SMAQ:关于海量数据的存储计算及查询的一个综述性文章。将视野从Google系列扩展到了当今流行的各种NoSql系统。

另所有论文加起来太长,只贴下序吧,具体的内容见附件。



大概一年前,翻译了google的Cluster,GFS,MapReduce,BigTable这几篇论文。随着工作的进行及参阅资料的增加,是时候重新看下当年翻译的内容了。看后也发现了一些笔误及理解不到位的地方,于是应该重新做下修正。但是由于之前的文章散落在blog上的各处,而篇幅又都比较长,实在懒得修改原来的内容。幸好我通常都会将blog上的文章先在本地编辑,所以干脆直接修改本地的版本吧,然后整理在一块。

所以呢,一方面重新检查下原来翻译的内容,对其中不当的地方予以纠正,同时又添加了一些理解性的文字。另一方面,当初在翻译这些论文时,实际上刻意留下了一篇Chubby,主要是因为这个涉及到比较基础的分布式理论,当时理解起来显得要比其他几篇吃力,索性就留了下来等以后再翻。现在呢,在看完拜占庭将军问题、FLP结论、Leases、Paxos这几个之后,我想重新阅读Chubby的时机也到了,所以呢这次就加上了Chubby这篇。

此外,如果要构成完整的SMAQ体系,实际上还应该加上Sawzall,不过这篇相对容易理解一些,同时网上也已存在比较好的中文版本,所以不再翻译,当然其他几篇网上也基本上都存在中文版本(GFS,MapReduce,BigTable应该很容易找到,关于Cluster和Chubby的则比较难找),但是它们是如此之重要,为了加深印象和理解,我还是自行将它们翻译了出来,当然这也是当时的初衷了。

当然呢,google的这些论文都已经是几年前发表的了。之后google又发表的一些诸如Pregel,Dremel,Percolator,MegaStore,则相对小众一些,所以就未纳入。正是google发表GFS,MapReduce,BigTable,Chubby,Sawzall这些论文之后,才衍生出Hadoop这样的一个海量数据处理的生态系统,形成了与之对应的诸如HDFS,Hadoop MapReduce,Hbase,Zookeeper,Pig,Hive这样的一些系统。要理解这样的一些系统,也还是要从google最原始的论文开始作为起点。

最后呢,其实我们可以看到在这些论文发表之后,一方面google本身的系统在不断演化,另一方面,开源实现与原始论文相较具体实现也有所不同,同时当开源软件应用到不同公司之后,这些公司本身会发展出适应自身应用的版本。具体来说:比如google的GFS在历经10多年的发展之后,与原始论文相比已发生了很多变化;再比如Hadoop已提出MapReduce 2,致力于更高的可用性、扩展性及通用性;Facebook对Hadoop针对自身应用特点进行了各种改进,主要是针对其实时性应用的特点,增加可用性及降低延迟。所以在这些论文的最后,又附上了一个ACM针对GFS的起源及演化,对google的Sean Quinlan所做的一次访谈。这个访谈已发表在ACM Queue上,对于理解一个系统是如何在漫长的时间内不断修正最初的设计、满足各种需求,如何一步步地演化是十分有益的。

由于时间能力及经验的限制,这些内容难免有偏颇及错误之处,欢迎指出其中的不当之处。同时为方便对比英文版阅读,在文章最后附上了对应的英文原版论文。最后,为组成一个完整的海量数据的存储计算和查询模型,又加上了关于Sawzall(对崮山路上走9遍翻译的版本做了一些修正及补充)及SMAQ的文章。

作者:phylips@bmy
出处:http://bbs.xjtu.edu.cn
分享到:
评论
8 楼 runhua 2014-10-27  
  
7 楼 xuanguoliang 2012-10-31  
          
6 楼 everlasting_188 2012-06-19  
翻译的非常好,非常感谢!
5 楼 向前走直到永远 2011-12-29  
可否指教指教啊
4 楼 ...mo_mo... 2011-09-10  
谢谢分享
3 楼 kimbery 2011-08-17  
谢谢分享
2 楼 hobitton 2011-08-16  
nice...
1 楼 kuangcong 2011-08-07  
博主大牛阿

相关推荐

    谷歌论文经典中文版

    Google的经典论文中文版 Cluster:发表于2003 年,主要介绍Google 的集群架构,对Google 搜索系统的 ...SMAQ:关于海量数据的存储计算及查询的一个综述性文章。将视野从Google 系 列扩展到了当今流行的各种NoSql 系统。

    论文研究-分布式海量数据系统Big Table架构分析 .pdf

    分布式海量数据系统Big Table架构分析,朱晓洁,潘维民,在信息爆炸的时代,解决PT级的海量数据存取管理服务问题背景下,由Google设计出分布式海量数据存储系统Big Table,基于Google 几个基础的

    大数据分析技术基础教学课件3-大数据处理平台Hadoop.pptx

    Google解决大数据计算问题的方法 面对爆炸式增长的数据,如何从海量的数据中找到自己想要的信息 Google三大神器 具备海量数据存储和访问的分布式文件系统 GFS 简洁高效的并行计算编程模型 MapReduce 支持海量结构化...

    Bigtable探秘 Google分布式数据存储系统.pdf

    Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google 的很多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance。这些...

    Bigtable:一个分布式的结构化数据存储系统[中文版] pdf

    Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance。这些...

    Google 三大论文中文版

    Bigtable是一个管理结构化数据的分布式存储系统,它被设计用来处理海量数据:分布在数千台通用服务器上的PB级的数据。Google的很多项目将数据存储在Bigtable中,包括Web索引、Google Earth、Google Finance。这些...

    谷歌论文 big table 中文版

    Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很 多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance

    本科生毕业论文 分布计算中的hadoop编程技术

    MapReduce的系统性能评估与Backup调度策略,分布计算中的hadoop编程技术,主要是MapReduce的系统性能...其中Google使用MapReduce作为日常计算的引擎,将每天处理20PB的数据 存在底层的存储系统如GFS6、BigTable7中。

    数据分析方案设计7要素.docx

    数据分析方案设计7要素 计算机时代崛起 计算机的发展和计算技术的发展极大地增强了数据分析的过程。1880年,在使用计算机之前,美国人口普查局花了7年的时间来处理收集到的信息并完成最终报告。使用此设备,在18个月...

    大数据基础知识入门.pdf

    主要包含NameNode(用来管理 文件系统的命名空间)和DataNode(文件系统中真正存储 数据的地方) MapReduce MapReduce是一个高性能的批处理分布式 计算框架,用于对海量数据进行并行分析和处 理。MapReduce采用"分而治之...

    HBASE讲义文档

    可以存储海量数据 性能也很强大 可以实现上亿条记录的毫秒级别的查询 但是不能提供严格的事务控制 只能在行级别保证事务 是一个高可靠性 高性能 面向列 可伸缩的分布式存储系统 利用hbase技术可以在廉价的PC上...

    hbase2.1.5官网下载的版本

    其良好的分布式架构设计为海量数据的快速存储和随机访问提供了可能。此外,HBase提供了稀疏数据集的容错方式,这类数据集在许多大数据用例中十分常见。 HBase作为Hadoop的一部分,是依赖Hadoop的。同时,HBase对...

    Bigtable:一个分布式的结构化数据存储系统

    Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很多项目使用Bigtable存储数据,包括Web索引、GoogleEarth、GoogleFinance。这些应用...

    民生银行大数据体系架构设计与演进

    大数据起源于互联网,在2003年左右由Google发布GFS和MapReduce论文为节点拉开了新技术应用的序幕,介绍了一种利用普通PC服务器构建大规模分布式系统,来解决海量数据的存储和计算问题。在此论文

    大数据技术概述.docx

    此时,以谷歌为代表的一些互联网应用厂商依靠自身的人才和应用场景方面的优势,开始研发新的数据计算和存储的技术,并取得了实质性的进展。谷歌发表了三篇技术论文,分别是GFS、 MapReduce和 Big Table。GFS解决了数据大...

    大数据HBase的使用场景

    HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储...

    Apress - Pro Hadoop

     Hadoop也跟其他云计算项目有共同点和目标:实现海量数据的计算。而进行海量计算需要一个稳定的,安全的数据容器,才有了Hadoop分布式文件系统(HDFS,Hadoop Distributed File System)。  HDFS通信部分使用org....

    Bigtable:A Distributed Storage System for Structured Data

    Bigtable是google三大论文之一,是一个分布式的结构化数据存储系统,被设计用来处理海量数据。

    大数据心得体会.doc

    计算虚拟化、存储虚拟化和网络虚拟化技术,使得大数 据在数据存储、挖掘、分析和应用分享等方面不仅在技术上可行,在经济上也可接受。 在人类文明史上,人类一直执着探索我们处的世界以及人类自身,一直试图测量、计...

Global site tag (gtag.js) - Google Analytics