構建數據中臺常用三把武器區別在哪?(Hadoop、Spark、Storm)

通過收集互聯網相關資料,進行總結歸納,整理如下:
一. Storm的適用場景:
1)流數據處理
Storm可以用來處理源源不斷流進來的消息,處理之後將結果寫入到某個存儲中去。

2)分佈式RPC。由於Storm的處理組件是分佈式的,而且處理延遲極低,所以可以作爲一個通用的分佈式RPC框架來使用。

3)Storm優勢就在於Storm是實時的連續性的分佈式的計算框架,一旦運行起來,除非你將它殺掉,否則它一直處理計算或等待計算的狀態.Spark和hadoop都做不到.


二. Spark的適用場景:
1)多次操作特定數據集的應用場合
Spark是基於內存的迭代計算框架,適用於需要多次操作特定數據集的應用場合。需要反覆操作的次數越多,所需讀取的數據量越大,受益越大,數據量小但是計算密集度較大的場合,受益就相對較小。

2)粗粒度更新狀態的應用
由於RDD的特性,Spark不適用那種異步細粒度更新狀態的應用,例如Web服務的存儲或者是增量的Web爬蟲和索引。就是對於那種增量修改的應用模型不適合。
總的來說Spark的適用面比較廣泛且比較通用。Hadoop是實現了MapReduce的思想,將數據切片計算來處理大量的離線數據數據。Hadoop處理的數據必須是已經存放在HDFS上或者類似HBase的數據庫中,所以Hadoop實現的時候是通過移動計算到這些存放數據的機器上來提高效率。

3)Spark是一個基於內存計算的開源集羣計算系統,目的是更快速的進行數據分析。Spark由加州伯克利大學AMP實驗室Matei爲主的小團隊使用Scala開發開發,類似於Hadoop MapReduce的通用並行計算框架,Spark基於Map Reduce算法實現的分佈式計算,擁有Hadoop MapReduce所具有的優點,但不同於MapReduce的是Job中間輸出和結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用於數據挖掘與機器學習等需要迭代的Map Reduce的算法。


三. Hadoop的適用場景:
1)海量數據的離線分析處理
2)大規模Web信息搜索
3)數據密集型並行計算


簡單來說:
Hadoop適合於離線的批量數據處理適用於對實時性要求極低的場景
Storm適合於實時流數據處理,實時性方面做得極好
Spark是內存分佈式計算框架,試圖吞併Hadoop的Map-Reduce批處理框架和Storm的流處理框架,但是Spark已經做得很不錯了,批處理方面性能優於Map-Reduce,但是流處理目前還是弱於Storm,產品仍在改進之中。售前西南羣QQ:977397486

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章