谷歌大数据的三驾马车

96
罗伯特北京
0.1 2017.06.11 11:04* 字数 1179

互联网企业的技术人员通常有两个大的方向,一个是做大规模高并发的线上服务,另外一个是做大数据分析,本文介绍大数据分析的鼻祖型论文“谷歌三驾马车”。这包括处理分布式数据的mapreduce、存储大量数据的gfs以及列式存储bigtable,当前流行的大数据技术都是在谷歌发表了这三大论文以后,不断的发展起来的,典型的就是Apache开源的hadoop和hbase,其中hadoop的mapreduce和hdfs的思想来源于谷歌mapreduce和gfs论文,而hbase来源于谷歌的bigtable论文。

由于谷歌的论文是英文的,如果大家读英文有些困难,也可以在网上找相应的中文书籍,如果没有中文的,大家读的过程中遇到难懂的英文表述,大家通过博客或者微信截图留言给博主,博主会帮大家翻译。

资料下载


1 mapreduce-osdi04.pdf

介绍:MapReduce是一个处理大数据集的编程模型。它通过map函数把基于行的输入转化成不同的键值对,再通过reduce函数把这些键值对针对相同的键进行聚合,并在聚合的过程中进行相应的计算。

其中的重点是:

  1. 如何分割基于行的源文件。
  2. 在map阶段如何把行数据映射成键值对。
  3. 对大数据集如何进行partition。
  4. 在reduce阶段如何进行响应的逻辑计算并输出结果。

其中,一个最典型的用例是给出一篇文章,计算每个单词出现的个数,起逻辑流程为:

  1. 把文章按照行来切分。
  2. 在map阶段,对每一行的每个单词构建一个键值对,键是单词本身,值是固定值"1"。
  3. 对map的结果进行分区,使用默认策略,通过哈希进行分区。
  4. 在reduce阶段,统计聚合在同一个key的值的数量,得出每个单词出现的次数。

下载链接 密码:olwp

2 gfs-sosp2003.pdf

介绍:GFS是一个分布式文件系统,用来存储大量的较大文件,它可以在廉价的硬件上实现存储文件,并做到容错性,并且针对多个客户同时访问提供比较有竞争力的性能。

其中的重点是:

  1. 把一个较大的文件切分成不同的单元块。
  2. 把每一个单元块存储在ChunkServer上,并且每一块都会复制在多个ChunkServer服务器上。
  3. 每一个文件包含多少块和哪些块这些元数据存储在GFS Master服务器上。

这是一个低成本的分布式存储系统,用来数据量非常大的存储场景,通常为mapreduce的大数据处理模型提供输入和输出的存储系统。

下载链接 密码:c2p4

3 bigtable-osdi06.pdf

介绍:Bigtable是一个可以管理结构化数据的分布式存储系统,它本身支持水平的横向扩展,通过使用成千上万的连接服务器,来支持PB量级的数据处理。

其中的重点是:

  1. Chubby服务器存储SSTable根的数据信息。
  2. Tablet server的水平扩展以及分裂。
  3. SSTable的存储结构。
  4. 列式存储结构,RowKey以及列簇的设计。
  5. LSM Tree的数据结构以及特点。

在谷歌,网页索引,谷歌帝企鹅,谷歌财经等的数据都存储在Bigtable集群里。

4 MapReduce_NextGen_Architecture.pdf

介绍:在第一代mapdure的实现中,资源分配和任务监控都耦合在Master节点上,在Worker节点数增加到一定的数量级,Master节点出现了性能瓶颈,下一代MapReduce框架Yarn把资源管理器和任务管理器分离,解决了这个性能瓶颈。

下载链接 密码:kb1n


《分布式服务架构:原理、设计与实战》是一本不可多得的理论与实践相结合的架构秘籍,京东购买请点这里或者扫描下方二维码。

《分布式服务架构:原理、设计与实战》京东主页

加入【云时代架构】技术社区,做互联网时代最适合的架构,回归架构的简洁之美。

作者简书博客

云时代架构
技术资料共享
Web note ad 1