市面上有一些初學(xué)者的誤解,他們拿spark和hadoop比較時就會說,Spark是內(nèi)存計算,內(nèi)存計算是spark的特性。請問在計算機領(lǐng)域,mysql,redis,ssh框架等等他們不是內(nèi)存計算嗎?依據(jù)馮諾依曼體系結(jié)構(gòu),有什么技術(shù)的程序不是在內(nèi)存中運行,需要數(shù)據(jù)從硬盤中拉取,然后供cpu進(jìn)行執(zhí)行?所有說sprk的特點是內(nèi)存計算相當(dāng)于什么都沒有說。那么spark的真正特點是什么?拋開spark的執(zhí)行模型的方式,它的特點無非就是多個任務(wù)之間數(shù)據(jù)通信不需要借助硬盤而是通過內(nèi)存,大大提高了程序的執(zhí)行效率。而hadoop由于本身的模型特點,多個任務(wù)之間數(shù)據(jù)通信是必須借助硬盤落地的。那么spark的特點就是數(shù)據(jù)交互不會走硬盤。只能說多個任務(wù)的數(shù)據(jù)交互不走硬盤,但是sprk的shuffle過程和hadoop一樣仍然必須走硬盤的。

本文是翻譯的出處 https://0x0fff.com/spark-misconceptions/。

原文和作者一起討論:http://www.cnblogs.com/intsmaze/p/7197420.html

微信:intsmaze

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

誤解一:Spark是一種內(nèi)存技術(shù)

  大家對Spark最大的誤解就是spark一種內(nèi)存技術(shù)。其實沒有一個Spark開發(fā)者正式說明這個,這是對Spark計算過程的誤解。Spark是內(nèi)存計算沒有錯誤,但是這并不是它的特性,只是很多專家在介紹spark的特性時,簡化后就成了spark是內(nèi)存計算。

  什么樣是內(nèi)存技術(shù)?就是允許你將數(shù)據(jù)持久化在RAM中并有效處理的技術(shù)。然而Spark并不具備將數(shù)據(jù)數(shù)據(jù)存儲在RAM的選項,雖然我們都知道可以將數(shù)據(jù)存儲在HDFS, HBase等系統(tǒng)中,但是不管是將數(shù)據(jù)存儲在磁盤還是內(nèi)存,都沒有內(nèi)置的持久化代碼。它所能做的事就是緩存數(shù)據(jù),而這個并不是數(shù)據(jù)持久化。已經(jīng)緩存的數(shù)據(jù)可以很容易地被刪除,并且在后期需要時重新計算。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式