很多初學者在剛剛接觸大數據的時候會有很多疑惑,比如對MapReduce、Storm、Spark三個計算框架的理解經常會產生混亂。 哪一個適合對大量數據進行處理?哪一個又適合對實時的流數據進行處理?又該如何來區分他們呢? 我對比整理了這3個計算框架的基本知識,大家可以瞭解一下以便對這個3個計算框架有一 ...
很多初學者在剛剛接觸大數據的時候會有很多疑惑,比如對MapReduce、Storm、Spark三個計算框架的理解經常會產生混亂。
哪一個適合對大量數據進行處理?哪一個又適合對實時的流數據進行處理?又該如何來區分他們呢?
我對比整理了這3個計算框架的基本知識,大家可以瞭解一下以便對這個3個計算框架有一個整體的認識。
大數據學習群119599574
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萬工作?
免費分享一套18年最新Hadoop大數據教程和100道Hadoop大數據必會面試題。
大數據學習群119599574
教程已幫助300+人成功轉型Hadoop開發,90%起薪超過20K,工資比之前翻了一倍。
由百度Hadoop核心架構師(T7級別)親自錄製。
內容包括0基礎入門、Hadoop生態系統、真實商業項目實戰3大部分。其中商業案例可以讓你接觸真實的生產環境,訓練自己的開發能力。