Spark與MapReduce的對比(區別)
提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文件
一、架構
Spark採用的是經典的scheduler/workers模式, 每個Spark應用程式執行的第一步是構建一個可重用的資源池,然後在這個資源池裡執行所有的ShuffleMapTask和ReduceTask
MapReduce採用了多程式模型,而Spark採用了多執行緒模型。多程式模型便於細粒度控制每個任務佔用的資源,但會消耗較多的啟動時間,不適合執行低延遲型別的作業,這是MapReduce廣為詬病的原因之一。而多執行緒模型則相反,該模型使得Spark很適合執行低延遲型別的作業。
二、速度
spark把中間計算結果存放在記憶體中,減少迭代過程中的資料落地,能夠實現資料高效共享,迭代運算效率高;當然也有部分計算基於磁碟,比如Shuffle,但是其大量Transformation操作,比如單純的map或者filter等操作可以直接基於記憶體進行pipeline操作。
mapreduce中的計算中間結果是儲存在磁碟上的,產生了大量的I/O操作,效率很低。
三、容錯
spark容錯性高,因為支援DAG(有向無環圖)圖的分散式,也叫spark有血緣機制,在計算過程中如果出現問題造成資料丟失,系統不用重新計算,只需要根據血緣關係找到最近的中間過程資料進行計算,而且基於記憶體的中間資料儲存增加了再次使用的讀取的速度
補充:spark引進rdd彈性分散式資料集的概念,它是分佈在一組節點中的只讀物件集合,如果資料集一部分資料丟失,則可以根據血統來對它們進行重建;另外在RDD計算時可以通過checkpoint來實現容錯,checkpoint有兩種方式,即checkpiont data 和logging the updates。
四、功能
hadoop只提供了map和reduce兩種操作,spark提供的操作型別有很多,大致分為轉換和行動操作兩大類。轉換操作包括:map,filter,flatmap,sample,groupbykey,reducebykey,union,join,cogroup,mapvalues,sort,partitionby等多種操作,行動操作包括:collect,reduce,lookup和save等操作。
另外,Spark提供了Spark RDD、Spark SQL、Spark Streaming、Spark MLlib、Spark GraphX等技術元件,可以一站式地完成大資料領域的離線批處理、互動式查詢、流式計算、機器學習、圖計算等常見的任務,所以具有超強的通用性。
相關文章
- 重要 | Spark和MapReduce的對比,不僅僅是計算模型?Spark模型
- Vue與React兩個框架的粗略區別對比VueReact框架
- hadoop和spark的區別HadoopSpark
- 簡要MR與Spark在Shuffle區別Spark
- MyISAM與InnoDB兩者的區別、詳細總結、效能對比
- 耦合與聚合的區別比單體與微服務區別更重要微服務
- Spark Streaming和Flink的區別Spark
- Spark TempView和GlobalTempView的區別SparkView
- Linux與windows對比有什麼優勢?詳細區別LinuxWindows
- 全面對比 Redis 和 Memcached 的 6 點區別Redis
- Spark與Hadoop MapReduce相比,有哪些優點你知道嗎?SparkHadoop
- 對比傳統庫存管理與供應鏈庫存管理的區別
- 工業交換機與商業交換機區別對比
- 一圖看懂Hadoop中的MapReduce與Spark的區別:從單機資料系統到分散式資料系統經歷了哪些?HadoopSpark分散式
- mysql匯入匯出指令碼的區別對比MySql指令碼
- 大資料框架對比 - Hadoop、Spark、Storm、Samza、Spark、Flink大資料框架HadoopSparkORM
- epic和steam的區別介紹及優劣對比 epic與steam互通嗎
- Q:Spark和Hadoop的架構區別SparkHadoop架構
- epic和steam的區別介紹及優劣對比
- VUE的兩種跳轉push和replace對比區別Vue
- 三星Note9與iPhone XS的區別對比 三星Note9對比iPhone XS那個好?iPhone
- MapReduce和Spark讀取HBase快照表Spark
- iPhone XS和iPhone XR區別對比 價格相差2200元區別在哪?iPhone
- 魅族16與小米8區別對比 魅族16與小米8誰更值得買?
- 談談Hadoop MapReduce和Spark MR實現HadoopSpark
- 區塊鏈中的共識機制分析與對比區塊鏈
- iPad 2018款與iPad Pro區別對比 iPad 2018和iPad Pro哪個好?iPad
- Java 支援的資料型別與 MySQL 支援的資料型別對比Java資料型別MySql
- ??與?:的區別
- Spark 外部變數和BroadCast變數的區別Spark變數AST
- iMazing與iTunes 兩款iOS裝置管理器區別 在備份操作上的對比iOS
- synchronized 與 Lock 的對比synchronized
- 蘋果iPhone XS/MAX與iPhone XR區別對比 三款手機該選誰?蘋果iPhone
- 魅藍6與魅藍6T區別對比 魅藍6T和魅藍6有什麼區別?
- 非同步請求xhr、ajax、axios與fetch的區別比較非同步iOS
- Python中x=y與x==y的區別。(比較簡單)Python
- OPPO K1與榮耀8X區別對比 OPPO K1對比榮耀8X哪個好?
- 小米8 SE與魅族X8區別對比,小米8 SE對比魅族X8哪個值得買好?