IMF前期知識儲備-What is Spark詳細講解(四大特性)

Spark 官方網站使用如下簡潔的語言描述了Spark

wKiom1bC3TXSCl_YAAAQ5VY7tZA076.png我們可以從中提取出如下信息:

Spark是一個引擎

  1. 快速

  2. 通用

Spark可以用來處理數據

  1. 數據是大規模的

Spark本身並不提供數據存儲能力,它只是一個計算框架


它的快速體現在什麼地方呢?

wKioL1bC3q7DqfzYAABHi9KZzz8330.png如果處理的數據在內存中,運行MapReduce比hadoop要快100倍以上,要是數據在磁盤中,也比Hadoop快10倍以上。

爲什麼會快呢,Spark在處理數據的時候,使用了一個高級的執行引擎:DAG - 有向無環圖 。以及內存計算。


易於使用:

可以使用scala、java、Python等語言快速的開發應用程序。Spark提供了超過80個操作來簡單的構建並行應用。只需幾行代碼,就可以完成wordcount的計算。

wKiom1bC4iTzT2GEAAARImRq8BU634.png


通用性:

Spark 提供了大數據一棧式解決方案。包含了流計算、圖計算、機器學習、SQL等。

wKiom1bC5AezHKDCAABUObxdUEA480.png

對於開發、維護、學習成本都是大大的降低。


運行在任何地方:

Spark可以運行在Hadoop的YARN、Mesos, standalone,或者運行在雲上。

Spark 處理的數據,可以存儲在HDFS, Cassandra, HBase,和S3等等。 


wKioL1bC5kSThLB3AACPjRlLFVw879.png


Spark的發展非常快速,TimeLine如下

wKioL1bC6G3Qx8UIAAHLo-CgJkI493.png

Spark進入Apache後,發展非常迅速。版本發佈比較頻繁。


Spark的生態體系(BDAS,中文:伯克利分析棧)

  • MapReduce屬於Hadoop生態體系之一,Spark則屬於BDAS生態體系之一

  • Hadoop包含了MapReduce、HDFS、HBase、Hive、Zookeeper、Pig、Sqoop等

  • BDAS包含了Spark、Shark(相當於Hive)、BlinkDB、Spark Streaming(消息實時處理框架,類似Storm)等等

BDAS生態體系圖:

wKioL1bC65aAN0HyAAEstSjP78U379.png



MapReduce和Spark比較

wKioL1bC7I7C9sGjAAHFM1PZwlQ004.png

異同點:

  1. 基本原理上

  • MapReduce 是基於磁盤的大數據批量處理

  • Spark 是基於RDD(彈性分佈式數據集)數據處理,RDD可以存儲在內存中,也可以存儲在磁盤中。

2. 模型上

  • MapReduce 適合處理超大規模的數據集,用於批處理。適合處理較少迭代的長任務需求。

  • Spark 適合數據挖掘,迭代次數較多的,例如機器學習等多輪迭代任務。 

3. 容錯性

  • MapReduce的每一步迭代,都需要將結果寫入硬盤,然後再從硬盤中讀取數據計算。只要一步失敗,則整個任務都失敗。

  • Spark使用DAG將任務拆分成許多步驟,每個步驟迭代的過程中,數據寫內存。而且Spark還提供容錯功能。






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