hadoop和spark的區別

adnb34g發表於2018-11-30


學習 hadoop已經有很長一段時間了,好像是二三月份的時候朋友給了一個國產Hadoop發行版下載地址,因為還是在學習階段就下載了一個三節點的學習版玩一下。在研究、學習hadoop的朋友可以去找一下看看(發行版DKhadoop,去大快的網站上應該可以下載到的。)

 

在學習 hadoop的時候查詢一些資料的時候經常會看到有比較hadoop和spark的,對於初學者來說難免會有點搞不清楚這二者到底有什麼大的區別。我記得剛開始接觸大資料這方面內容的時候,也就這個問題查閱了一些資料,在《FreeRCH大資料一體化開發框架》的這篇說明文件中有就Hadoop和spark的區別進行了簡單的說明,但我覺得解釋的也不是特別詳細。我把個人認為解釋的比較好的一個觀點分享給大家:

它主要是從四個方面對 Hadoop和spark進行了對比分析:

1、 目的:首先需要明確一點, hadoophe spark 這二者都是大資料框架,即便如此二者各自存在的目的是不同的。Hadoop是一個分散式的資料基礎設施,它是將龐大的資料集分派到由若干臺計算機組成的叢集中的多個節點進行儲存。Spark是一個專門用來對那些分散式儲存的大資料進行處理的工具,spark本身並不會進行分散式資料的儲存。

2、 兩者的部署: Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的資料提供了儲存,則MapReduce為海量的資料提供了計算。 所以使用 Hadoop則可以拋開spark,而直接使用Hadoop自身的mapreduce完成資料的處理。Spark是不提供檔案管理系統的,但也不是隻能依附在Hadoop上,它同樣可以選擇其他的基於雲的資料系統平臺,但spark預設的一般選擇的還是hadoop。

3 資料處理速度: Spark,擁有Hadoop、 MapReduce所具有能更好地適用於資料探勘與機器學習等需要迭代的的優點;但不同於MapReduce的是Job中間輸出結果可以儲存在記憶體中,從而不再需要讀寫HDFS

Spark 是一種與  Hadoop  相似的開源叢集計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了記憶體分佈資料集,除了能夠提供互動式查詢外,它還可以優化迭代工作負載。

4、資料安全恢復:Hadoop每次處理的後的資料是寫入到磁碟上,所以其天生就能很有彈性的對系統錯誤進行處理;spark的資料物件儲存在分佈於資料叢集中的叫做彈性分散式資料集中,這些資料物件既可以放在記憶體,也可以放在磁碟,所以spark同樣可以完成資料的安全恢復。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524777/viewspace-2222275/,如需轉載,請註明出處,否則將追究法律責任。

相關文章