您好,登錄后才能下訂單哦!
Spark 官方網站使用如下簡潔的語言描述了Spark
我們可以從中提取出如下信息:
Spark是一個引擎
快速
通用
Spark可以用來處理數據
數據是大規模的
Spark本身并不提供數據存儲能力,它只是一個計算框架
它的快速體現在什么地方呢?
如果處理的數據在內存中,運行MapReduce比hadoop要快100倍以上,要是數據在磁盤中,也比Hadoop快10倍以上。
為什么會快呢,Spark在處理數據的時候,使用了一個高級的執行引擎:DAG - 有向無環圖 。以及內存計算。
易于使用:
可以使用scala、java、Python等語言快速的開發應用程序。Spark提供了超過80個操作來簡單的構建并行應用。只需幾行代碼,就可以完成wordcount的計算。
通用性:
Spark 提供了大數據一棧式解決方案。包含了流計算、圖計算、機器學習、SQL等。
對于開發、維護、學習成本都是大大的降低。
運行在任何地方:
Spark可以運行在Hadoop的YARN、Mesos, standalone,或者運行在云上。
Spark 處理的數據,可以存儲在HDFS, Cassandra, HBase,和S3等等。
Spark的發展非常快速,TimeLine如下
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生態體系圖:
MapReduce和Spark比較
異同點:
基本原理上
MapReduce 是基于磁盤的大數據批量處理
Spark 是基于RDD(彈性分布式數據集)數據處理,RDD可以存儲在內存中,也可以存儲在磁盤中。
2. 模型上
MapReduce 適合處理超大規模的數據集,用于批處理。適合處理較少迭代的長任務需求。
Spark 適合數據挖掘,迭代次數較多的,例如機器學習等多輪迭代任務。
3. 容錯性
MapReduce的每一步迭代,都需要將結果寫入硬盤,然后再從硬盤中讀取數據計算。只要一步失敗,則整個任務都失敗。
Spark使用DAG將任務拆分成許多步驟,每個步驟迭代的過程中,數據寫內存。而且Spark還提供容錯功能。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。