大數(shù)據(jù)技術(shù)發(fā)展史

2004年升敲,整個(gè)互聯(lián)網(wǎng)界還處于懵懂時(shí)代答倡,Google發(fā)布了三篇論文,分別是分布式文件系統(tǒng)GFS驴党,大數(shù)據(jù)分布式計(jì)算框架MapReduce瘪撇,分布式存儲(chǔ)系統(tǒng)bigTable。當(dāng)時(shí)Lucene開(kāi)源項(xiàng)目的創(chuàng)始人Dong Cutting在閱讀了Google的論文后港庄,非常贊嘆并且極為興奮倔既,之后根據(jù)論文細(xì)節(jié)原理初步實(shí)現(xiàn)了類(lèi)GFS和MapReduce的功能,這也是之后Hadoop的雛形鹏氧。

2006年渤涌,cutting將這些大數(shù)據(jù)相關(guān)的功能從Nutch中分離了出來(lái),啟動(dòng)了一個(gè)獨(dú)立的運(yùn)行維護(hù)大數(shù)據(jù)項(xiàng)目把还,這就是鼎鼎有名的Hadoop实蓬,主要包括分布式文件系統(tǒng)HDFS和計(jì)算引擎MapReduce。

HDFS采用master/slave架構(gòu)吊履。一個(gè)HDFS集群是有一個(gè)Namenode和一定數(shù)目的Datanode組成安皱。Namenode是一個(gè)中心服務(wù)器,負(fù)責(zé)管理文件系統(tǒng)的namespace和客戶端對(duì)文件的訪問(wèn)艇炎。Namenode執(zhí)行文件系統(tǒng)的namespace操作酌伊,例如打開(kāi)、關(guān)閉缀踪、重命名文件和目錄腺晾,同時(shí)決定block到具體Datanode節(jié)點(diǎn)的映射。Namenode和Datanode都是設(shè)計(jì)成可以跑在普通的廉價(jià)的運(yùn)行Linux的機(jī)器上辜贵。集群中單一Namenode的結(jié)構(gòu)大大簡(jiǎn)化了系統(tǒng)的架構(gòu)悯蝉。Namenode是所有HDFS元數(shù)據(jù)的仲裁者和管理者,Datanode在Namenode的指揮下進(jìn)行block的創(chuàng)建托慨、刪除和復(fù)制鼻由。Datanode在集群中一般是一個(gè)節(jié)點(diǎn)一個(gè),負(fù)責(zé)管理節(jié)點(diǎn)上它們附帶的存儲(chǔ)。在內(nèi)部蕉世,一個(gè)文件其實(shí)分成一個(gè)或多個(gè)block蔼紧,這些block存儲(chǔ)在Datanode集合里。


HDFS架構(gòu)圖

MapReduce 來(lái)處理大數(shù)據(jù)集的過(guò)程, 這個(gè) MapReduce 的計(jì)算過(guò)程簡(jiǎn)而言之狠轻,就是將大數(shù)據(jù)集分解為成百上千的小數(shù)據(jù)集奸例,每個(gè)(或若干個(gè))數(shù)據(jù)集分別由集群中的一個(gè)結(jié)點(diǎn)(一般就是一臺(tái)普通的計(jì)算機(jī))進(jìn)行處理并生成中間結(jié)果,然后這些中間結(jié)果又由大量的結(jié)點(diǎn)進(jìn)行合并, 形成最終結(jié)果向楼。

計(jì)算模型的核心是 Map 和 Reduce 兩個(gè)函數(shù)查吊,這兩個(gè)函數(shù)由用戶負(fù)責(zé)實(shí)現(xiàn),功能是按一定的映射規(guī)則將輸入的 <key, value> 對(duì)轉(zhuǎn)換成另一個(gè)或一批 <key, value> 對(duì)輸出湖蜕。

這段期間人們需要編寫(xiě)MapReduce程序逻卖,然后丟到Hadoop平臺(tái)在運(yùn)行,有人覺(jué)得編寫(xiě)MapReduce程序很麻煩昭抒,于是FaceBook發(fā)布了Hive评也,Hive支持sql語(yǔ)法來(lái)進(jìn)行大數(shù)據(jù)計(jì)算,Hive會(huì)將sql語(yǔ)句轉(zhuǎn)換成MapReduce的計(jì)算程序灭返。所以這時(shí)期那些熟悉數(shù)據(jù)庫(kù)的工程師們便可以無(wú)門(mén)檻的使用大數(shù)據(jù)技術(shù)來(lái)進(jìn)行分析和處理了盗迟。Hive的出現(xiàn)極大的降低Hadoop的使用難度,2011年的時(shí)候熙含,F(xiàn)acebook大數(shù)據(jù)平臺(tái)上運(yùn)行的作業(yè)90%都來(lái)源于Hive罚缕。

在Hadoop早期,MapReduce既是一個(gè)執(zhí)行引擎婆芦,又是一個(gè)資源調(diào)度框架怕磨,服務(wù)器集群的資源調(diào)度管理由MapReduce自己完成。但是這樣不利于資源復(fù)用消约,也使得MapReduce非常臃腫肠鲫。于是一個(gè)新項(xiàng)目啟動(dòng)了,將MapReduce執(zhí)行引擎和資源調(diào)度分離開(kāi)來(lái)或粮,這就是Yarn导饲。2012年,Yarn成為一個(gè)獨(dú)立的項(xiàng)目開(kāi)始運(yùn)營(yíng)氯材,隨后被各類(lèi)大數(shù)據(jù)產(chǎn)品支持渣锦,成為大數(shù)據(jù)平臺(tái)上最主流的資源調(diào)度系統(tǒng)。

同樣是在2012年氢哮,UC伯克利AMP實(shí)驗(yàn)室(Algorithms袋毙、Machine和People的縮寫(xiě))開(kāi)發(fā)的Spark開(kāi)始嶄露頭角。當(dāng)時(shí)AMP實(shí)驗(yàn)室的馬鐵博士發(fā)現(xiàn)使用MapReduce進(jìn)行機(jī)器學(xué)習(xí)計(jì)算的時(shí)候性能非常差冗尤,因?yàn)闄C(jī)器學(xué)習(xí)算法通常需要進(jìn)行很多次的迭代計(jì)算听盖,而MapReduce每執(zhí)行一次Map和Reduce計(jì)算都需要重新啟動(dòng)一次作業(yè)胀溺,帶來(lái)大量的無(wú)謂消耗。還有一點(diǎn)就是MapReduce主要使用磁盤(pán)作為存儲(chǔ)介質(zhì)皆看,而2012年的時(shí)候仓坞,內(nèi)存已經(jīng)突破容量和成本限制,成為數(shù)據(jù)運(yùn)行過(guò)程中主要的存儲(chǔ)介質(zhì)腰吟。Spark一經(jīng)推出无埃,立即受到業(yè)界的追捧,并逐步替代MapReduce在企業(yè)應(yīng)用中的地位毛雇。Spark的優(yōu)點(diǎn)如下

1.運(yùn)行速度快,Spark擁有DAG執(zhí)行引擎嫉称,支持在內(nèi)存中對(duì)數(shù)據(jù)進(jìn)行迭代計(jì)算。官方提供的數(shù)據(jù)表明禾乘,如果數(shù)據(jù)由磁盤(pán)讀取澎埠,速度是Hadoop MapReduce的10倍以上虽缕,如果數(shù)據(jù)從內(nèi)存中讀取始藕,速度可以高達(dá)100多倍。

2.適用場(chǎng)景廣泛,大數(shù)據(jù)分析統(tǒng)計(jì)氮趋,實(shí)時(shí)數(shù)據(jù)處理伍派,圖計(jì)算及機(jī)器學(xué)習(xí)

3.易用性,編寫(xiě)簡(jiǎn)單,支持80種以上的高級(jí)算子剩胁,支持多種語(yǔ)言诉植,數(shù)據(jù)源豐富,可部署在多種集群中

4.容錯(cuò)性高昵观。Spark引進(jìn)了彈性分布式數(shù)據(jù)集RDD (Resilient Distributed Dataset) 的抽象晾腔,它是分布在一組節(jié)點(diǎn)中的只讀對(duì)象集合,這些集合是彈性的啊犬,如果數(shù)據(jù)集一部分丟失灼擂,則可以根據(jù)“血統(tǒng)”(即充許基于數(shù)據(jù)衍生過(guò)程)對(duì)它們進(jìn)行重建。另外在RDD計(jì)算時(shí)可以通過(guò)CheckPoint來(lái)實(shí)現(xiàn)容錯(cuò)觉至,而CheckPoint有兩種方式:CheckPoint Data剔应,和Logging The Updates,用戶可以控制采用哪種方式來(lái)實(shí)現(xiàn)容錯(cuò)语御。


Spark架構(gòu)

用戶編排的代碼由一個(gè)個(gè)的RDD Objects組成峻贮,DAGScheduler負(fù)責(zé)根據(jù)RDD的寬依賴拆分DAG為一個(gè)個(gè)的Stage,每個(gè)Stage包含一組邏輯完全相同的可以并發(fā)執(zhí)行的Task应闯。TaskScheduler負(fù)責(zé)將Task推送給從ClusterManager那里獲取到的Worker啟動(dòng)的Executor纤控。


一般說(shuō)來(lái),像MapReduce碉纺、Spark這類(lèi)計(jì)算框架處理的業(yè)務(wù)場(chǎng)景都被稱(chēng)作批處理計(jì)算船万,因?yàn)樗鼈兺ǔa槍?duì)以“天”為單位產(chǎn)生的數(shù)據(jù)進(jìn)行一次計(jì)算细层,然后得到需要的結(jié)果,這中間計(jì)算需要花費(fèi)的時(shí)間大概是幾十分鐘甚至更長(zhǎng)的時(shí)間唬涧。因?yàn)橛?jì)算的數(shù)據(jù)是非在線得到的實(shí)時(shí)數(shù)據(jù)疫赎,而是歷史數(shù)據(jù),所以這類(lèi)計(jì)算也被稱(chēng)為大數(shù)據(jù)離線計(jì)算碎节。

而在大數(shù)據(jù)領(lǐng)域捧搞,還有另外一類(lèi)應(yīng)用場(chǎng)景,它們需要對(duì)實(shí)時(shí)產(chǎn)生的大量數(shù)據(jù)進(jìn)行即時(shí)計(jì)算狮荔,比如對(duì)于遍布城市的監(jiān)控?cái)z像頭進(jìn)行人臉識(shí)別和嫌犯追蹤胎撇。這類(lèi)計(jì)算稱(chēng)為大數(shù)據(jù)流計(jì)算,相應(yīng)地殖氏,有Storm晚树、Flink、Spark Streaming等流計(jì)算框架來(lái)滿足此類(lèi)大數(shù)據(jù)應(yīng)用的場(chǎng)景雅采。 流式計(jì)算要處理的數(shù)據(jù)是實(shí)時(shí)在線產(chǎn)生的數(shù)據(jù)爵憎,所以這類(lèi)計(jì)算也被稱(chēng)為大數(shù)據(jù)實(shí)時(shí)計(jì)算。

在典型的大數(shù)據(jù)的業(yè)務(wù)場(chǎng)景下婚瓜,數(shù)據(jù)業(yè)務(wù)最通用的做法是宝鼓,采用批處理的技術(shù)處理歷史全量數(shù)據(jù),采用流式計(jì)算處理實(shí)時(shí)新增數(shù)據(jù)巴刻。而像Flink這樣的計(jì)算引擎愚铡,可以同時(shí)支持流式計(jì)算和批處理計(jì)算

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胡陪,隨后出現(xiàn)的幾起案子沥寥,更是在濱河造成了極大的恐慌,老刑警劉巖柠座,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件邑雅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡愚隧,警方通過(guò)查閱死者的電腦和手機(jī)蒂阱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)狂塘,“玉大人录煤,你說(shuō)我怎么就攤上這事≤窈” “怎么了妈踊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)泪漂。 經(jīng)常有香客問(wèn)我廊营,道長(zhǎng)歪泳,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任露筒,我火速辦了婚禮呐伞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慎式。我一直安慰自己伶氢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布瘪吏。 她就那樣靜靜地躺著癣防,像睡著了一般。 火紅的嫁衣襯著肌膚如雪掌眠。 梳的紋絲不亂的頭發(fā)上蕾盯,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音蓝丙,去河邊找鬼级遭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛迅腔,可吹牛的內(nèi)容都是我干的装畅。 我是一名探鬼主播靠娱,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼沧烈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了像云?” 一聲冷哼從身側(cè)響起锌雀,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎迅诬,沒(méi)想到半個(gè)月后腋逆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡侈贷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年惩歉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俏蛮。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撑蚌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搏屑,到底是詐尸還是另有隱情争涌,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布辣恋,位于F島的核電站亮垫,受9級(jí)特大地震影響模软,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜饮潦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一燃异、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧继蜡,春花似錦特铝、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至稻轨,卻和暖如春灵莲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背殴俱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工政冻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人线欲。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓明场,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親李丰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苦锨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Zookeeper用于集群主備切換。 YARN讓集群具備更好的擴(kuò)展性趴泌。 Spark沒(méi)有存儲(chǔ)能力舟舒。 Spark的Ma...
    Yobhel閱讀 7,255評(píng)論 0 34
  • 1.Linux基礎(chǔ)和分布式集群技術(shù) 學(xué)完此階段可掌握的核心能力: 熟練使用Linux,熟練安裝Linux上的軟件嗜憔,...
    Alukar閱讀 1,298評(píng)論 0 1
  • 那些晚霞是秋發(fā)來(lái)的請(qǐng)柬 是浸泡在天空之城里的玫瑰花瓣 把心事掛在云霞之上 留一顆驛動(dòng)的眸 出水芙蓉般搖曳 成為這個(gè)...
    左岸布衣閱讀 190評(píng)論 0 2
  • 你好吉捶,你好嗎夺鲜,在嗎,呐舔,币励,你的qq好友已上線。滋早。榄审。 你還記得多久沒(méi)上微信了嗎,你是有多忙杆麸,忙到發(fā)個(gè)朋友圈都戰(zhàn)...
    你是誰(shuí)的誰(shuí)wan閱讀 196評(píng)論 0 1
  • 我和發(fā)小非非因?yàn)榍髮W(xué)搁进,受人推薦來(lái)到一座小城浪感。說(shuō)來(lái)也怪,對(duì)于這坐城饼问,我非常反感影兽,一種說(shuō)不上來(lái)的陌生與熟悉,我暫且稱(chēng)...
    路往往閱讀 480評(píng)論 4 7