这年头谁没个故事呢!
Spark 也有!
起源
计算机科学大致分为4个领域:
- 人工智能
- 编程语言
- 操作系统
- 计算机理论
其中操作系统领域有两个顶级会议
- ODSI (USENIX conference on Operating Systems Design and Implementation)
- SOSP (ACM Symposium on Operating Systems Principles)
相当于操作系统的武林大会
如果把近几十年关于这两个大会提到的武功收录到一本书
就可以看做是操作系统的绝世秘籍
毫不夸张的说 得此秘籍者 得天下
三篇论文
其中 一家成立不到三十年的小门派——Google
四年间分别在 ODSI 与 SOSP 发表了 3 篇论文
引起了整个武林对分布式系统的广泛关注与讨论
这三篇论文分别是:
SOSP2003—The Google File System
ODSI2004—MapReduce: Simplifed Data Processing on Large Clusters
ODSI2006—Bigtable: A Distributed Storage System for Structured Data
The Google File System 主要讨论分布式文件系统
MapReduce 主要讨论分布式计算框架
Bigtable 主要讨论分布式数据存储
有了这 三篇论文的理论基础与后续的一系列文章
再加上开源社区强大的实战能力
Hadoop、HDFS、MapReduce、HBase、Spark 等很快走上了台前
大数据技术开始呈现出一个诸子百家的局面
HDFS
开源社区根据Google的第一篇论文"The Google File System"
实现了一个名为HDFS的分布式文件系统
任你武功招式再多 也逃不过最基础的练功心法
HDFS就好比那最基础的练功心法
而且是最上乘的 也是最容易掌握的
因HDFS的高容错性、高吞吐量、适合部署在廉价的机器上
这三招使其声名大噪 成为了各家门派的基础心法
就算练不成绝世武功
拿来修身养性也是可以的
MapReduce
我们常说的MapReduce指的就是
开源社区根据Google的第二篇论文 实现的一个分布式计算框架
但随着练的人越来越来多 MapReduce的缺点也逐渐暴露出来
不少江湖人士反映 练一段时间后
怎么练都练不上去 非常容易产生瓶颈
于是乎 就开始有许多人在此功法上进行修正及完善
新一代计算框架如 Spark、Flink 也就开始崛起
最初名为MapReduce的计算框架也逐渐退出历史舞台
只留在了老一辈江湖人士的记忆里
MapReduce还有另一层含义:一种编程模型
MapReduce 模型将数据处理方式抽象为 map 和 reduce
- map 也就是映射 可以理解为数据一对一的映射
- reduce 也就是归约 可以理解为数据一对多的映射
如下图所示
imgMapReduce认为再复杂的数据处理流程也无非是这两种映射方式的组合
img这样的编程模型为分布式的实现提供了可能
当整个数据集的计算量超过一台计算机处理的极限时
我们就会想办法把不同的数据集交给不同的计算机完成
map过程 非常容易就可以把各个数据交给不同的计算机完成
不影响最终的结果
reduce过程 必然会涉及数据在不同计算机之间的传输
这也是MapReduce计算框架的分布式实现的一个关键点
HBase
开源社区根据Google的第三篇论文"Bigtable"
实现了一个名为HBase的分布式非结构化数据库
它不是运行MapReduce任务来查询存放在HDFS上的数据
而是使用自己的一套规则来存储数据
所以运行速度非常快 适用于海量明细数据的实时查询
由于HBase相较于HDFS、MapReduce诞生的比较晚
而且当时又有诸多数据库可代替
也就造成了HBase没有像HDFS、MapReduce那样流行
网友评论