很多初學者在剛剛接觸大數據的時候會有很多疑惑,比如對MapReduce、Storm、Spark三個計算框架的理解經常會產生混亂。
哪一個適合對大量數據進行處理?哪一個又適合對實時的流數據進行處理?又該如何來區分他們呢?
我對比整理了這3個計算框架的基本知識,大家可以瞭解一下以便對這個3個計算框架有一個整體的認識。
MapReduce
分佈式離線計算框架
主要適用於大批量的集羣任務,由於是批量執行,故時效性偏低。
原生支持 Java 語言開發 MapReduce ,其它語言需要使用到 Hadoop Streaming 來開發。
Spark
Spark 是專爲大規模數據處理而設計的快速通用的計算引擎,其是基於內存的迭代式計算。
Spark 保留了MapReduce 的優點,而且在時效性上有了很大提高,從而對需要迭代計算和有較高時效性要求的系統提供了很好的支持。
開發人員可以通過Java、Scala或者Python等語言進行數據分析作業編寫,並使用超過80種高級運算符。
Spark與HDFS全面兼容,同時還能與其它Hadoop組件—包括YARN以及HBase並行協作。
Spark可以被用於處理多種作業類型,比如實時數據分析、機器學習與圖形處理。多用於能容忍小延時的推薦與計算系統。
Storm
Storm是一個分佈式的、可靠的、容錯的流式計算框架。
Storm 一開始就是爲實時處理設計,因此在實時分析/性能監測等需要高時效性的領域廣泛採用。
Storm在理論上支持所有語言,只需要少量代碼即可完成適配。
Storm把集羣的狀態存在Zookeeper或者本地磁盤,所以後臺進程都是無狀態的(不需要保存自己的狀態,都在zookeeper上),可以在不影響系統健康運行的同時失敗或重啓。
Storm可應用於--數據流處理、持續計算(持續地向客戶端發送數據,它們可以實時的更新以及展現數據,比如網站指標)、分佈式遠程過程調用(輕鬆地並行化CPU密集型操作)。
如何用4個月學會Hadoop開發並找到年薪25萬工作?
免費分享一套17年最新Hadoop大數據教程和100道Hadoop大數據必會面試題。
因爲鏈接經常被和諧,需要的朋友請 加微信 55723447 來獲取最新下載鏈接,註明“51CTO”
教程已幫助300+人成功轉型Hadoop開發,90%起薪超過20K,工資比之前翻了一倍。
由百度Hadoop核心架構師(T7級別)親自錄製。
內容包括0基礎入門、Hadoop生態系統、真實商業項目實戰3大部分。其中商業案例可以讓你接觸真實的生產環境,訓練自己的開發能力。