谷歌大数据的三驾马车资料下载

互联网企业的技术人员通常有两个大的方向,一个是做大规模高并发的线上服务,另外一个是做大数据分析,本文介绍大数据分析的鼻祖型论文“谷歌三驾马车”。这包括处理分布式数据的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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

Java 性能优化的五大技巧

要对你的 java 代码进行优化,需要理解 java 不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的。使用下面这五个技巧和资源,开始学习如何...

823
来自专栏陈帅的专栏

网络延迟与带宽性能专项测试

代理、VPN作为两种古老的数通网络安全解决方案,在当今移动互联网时代,伴随着游戏网络加速、WiFi安全性等用户硬性需求,再次焕发青春。

1.5K0
来自专栏奇点大数据

python需要系统学习一下

1、python是脚本语言,作为程序员我觉得至少应该掌握一本通用脚本语言,因为脚本语言与编译语言的开发测试过程不同,可以极大的提高编程效率。

1262
来自专栏大数据

UC Berkeley提出新型分布式执行框架Ray:有望取代Spark

译者|马卓奇 编辑|Natalie AI 前线导读:下一代人工智能应用程序需要不断地与环境交互,并从这些交互中学习。这对系统的性能和灵活性提出了新的要求,而现有...

3348
来自专栏恰同学骚年

操作系统核心原理-6.外存管理(上)磁盘基础

  计算机是处理数据的机器,而数据就需要有地方存放。在计算机中,可供数据存放的地方并不太多,除了内存之外,最主要的存储数据的媒介就是磁盘。对于大多数计算机领域的...

1341
来自专栏AI科技大本营的专栏

AI 技术讲座精选:如何创建 R 包并将其发布在 CRAN / GitHub 上?

前 言 大多数受欢迎的编程语言都有个共同点——他们都是“开源”。开源是一种分散的开发模式,它基于社区参与。社区成员推动这种编程语言的发展,所得成果向所有人开放。...

2875
来自专栏GopherCoder

专栏:006:实战爬取博客

1542
来自专栏张善友的专栏

CAP理论十二年回顾:"规则"变了

CAP理论断言任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。但是通过显式处理分区情形,系统设计师可以做到优化数据一致...

2509
来自专栏玉树芝兰

如何用Python提取中文关键词?

本文一步步为你演示,如何用Python从中文文本中提取关键词。如果你需要对长文“观其大略”,不妨尝试一下。

1432
来自专栏程序员互动联盟

【专业技术第一讲】进程的一生

学习编程,进程跳不过去,好多初学者可以向背教科书一样说出进程和线程的区别,但是很少能真正的理解进程整个运行过程。搞清楚进程的运行机制,进程运行的各个阶段也并不是...

3646

扫码关注云+社区