這年頭誰沒個(gè)故事呢!
Spark 也有!
起源
計(jì)算機(jī)科學(xué)大致分為4個(gè)領(lǐng)域:
- 人工智能
- 編程語言
- 操作系統(tǒng)
- 計(jì)算機(jī)理論
其中操作系統(tǒng)領(lǐng)域有兩個(gè)頂級(jí)會(huì)議
- ODSI (USENIX conference on Operating Systems Design and Implementation)
- SOSP (ACM Symposium on Operating Systems Principles)
相當(dāng)于操作系統(tǒng)的武林大會(huì)
如果把近幾十年關(guān)于這兩個(gè)大會(huì)提到的武功收錄到一本書
就可以看做是操作系統(tǒng)的絕世秘籍
毫不夸張的說 得此秘籍者 得天下
三篇論文
其中 一家成立不到三十年的小門派——Google
四年間分別在 ODSI 與 SOSP 發(fā)表了 3 篇論文
引起了整個(gè)武林對(duì)分布式系統(tǒng)的廣泛關(guān)注與討論
這三篇論文分別是:
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 主要討論分布式文件系統(tǒng)
MapReduce 主要討論分布式計(jì)算框架
Bigtable 主要討論分布式數(shù)據(jù)存儲(chǔ)
有了這 三篇論文的理論基礎(chǔ)與后續(xù)的一系列文章
再加上開源社區(qū)強(qiáng)大的實(shí)戰(zhàn)能力
Hadoop嗓化、HDFS、MapReduce、HBase、Spark 等很快走上了臺(tái)前
大數(shù)據(jù)技術(shù)開始呈現(xiàn)出一個(gè)諸子百家的局面
HDFS
開源社區(qū)根據(jù)Google的第一篇論文"The Google File System"
實(shí)現(xiàn)了一個(gè)名為HDFS的分布式文件系統(tǒng)
任你武功招式再多 也逃不過最基礎(chǔ)的練功心法
HDFS就好比那最基礎(chǔ)的練功心法
而且是最上乘的 也是最容易掌握的
因HDFS的高容錯(cuò)性、高吞吐量、適合部署在廉價(jià)的機(jī)器上
這三招使其聲名大噪 成為了各家門派的基礎(chǔ)心法
就算練不成絕世武功
拿來修身養(yǎng)性也是可以的
MapReduce
我們常說的MapReduce指的就是
開源社區(qū)根據(jù)Google的第二篇論文 實(shí)現(xiàn)的一個(gè)分布式計(jì)算框架
但隨著練的人越來越來多 MapReduce的缺點(diǎn)也逐漸暴露出來
不少江湖人士反映 練一段時(shí)間后
怎么練都練不上去 非常容易產(chǎn)生瓶頸
于是乎 就開始有許多人在此功法上進(jìn)行修正及完善
新一代計(jì)算框架如 Spark、Flink 也就開始崛起
最初名為MapReduce的計(jì)算框架也逐漸退出歷史舞臺(tái)
只留在了老一輩江湖人士的記憶里
MapReduce還有另一層含義:一種編程模型
MapReduce 模型將數(shù)據(jù)處理方式抽象為 map 和 reduce
- map 也就是映射 可以理解為數(shù)據(jù)一對(duì)一的映射
- reduce 也就是歸約 可以理解為數(shù)據(jù)一對(duì)多的映射
如下圖所示
MapReduce認(rèn)為再?gòu)?fù)雜的數(shù)據(jù)處理流程也無非是這兩種映射方式的組合
這樣的編程模型為分布式的實(shí)現(xiàn)提供了可能
當(dāng)整個(gè)數(shù)據(jù)集的計(jì)算量超過一臺(tái)計(jì)算機(jī)處理的極限時(shí)
我們就會(huì)想辦法把不同的數(shù)據(jù)集交給不同的計(jì)算機(jī)完成
map過程 非常容易就可以把各個(gè)數(shù)據(jù)交給不同的計(jì)算機(jī)完成
不影響最終的結(jié)果
reduce過程 必然會(huì)涉及數(shù)據(jù)在不同計(jì)算機(jī)之間的傳輸
這也是MapReduce計(jì)算框架的分布式實(shí)現(xiàn)的一個(gè)關(guān)鍵點(diǎn)
HBase
開源社區(qū)根據(jù)Google的第三篇論文"Bigtable"
實(shí)現(xiàn)了一個(gè)名為HBase的分布式非結(jié)構(gòu)化數(shù)據(jù)庫(kù)
它不是運(yùn)行MapReduce任務(wù)來查詢存放在HDFS上的數(shù)據(jù)
而是使用自己的一套規(guī)則來存儲(chǔ)數(shù)據(jù)
所以運(yùn)行速度非痴螅快 適用于海量明細(xì)數(shù)據(jù)的實(shí)時(shí)查詢
由于HBase相較于HDFS、MapReduce誕生的比較晚
而且當(dāng)時(shí)又有諸多數(shù)據(jù)庫(kù)可代替
也就造成了HBase沒有像HDFS逝段、MapReduce那樣流行