Spark相對於MapReduce的優勢


MapReduce存在的問題

1. MapReduce框架局限性

  1)僅支持Map和Reduce兩種操作

  2)處理效率低效。

    a)Map中間結果寫磁盤,Reduce寫HDFS,多個MR之間通過HDFS交換數據; 任務調度和啟動開銷大;

    b)無法充分利用內存

    c)Map端和Reduce端均需要排序

  3)不適合迭代計算(如機器學習、圖計算等),交互式處理(數據挖掘) 和流式處理(點擊日志分析)

2. MapReduce編程不夠靈活

  1)嘗試scala函數式編程語言

 

Spark

1. 高效(比MapReduce快10~100倍)

  1)內存計算引擎,提供Cache機制來支持需要反復迭代計算或者多次數據共享,減少數據讀取的IO開銷

  2)DAG引擎,減少多次計算之間中間結果寫到HDFS的開銷

  3)使用多線程池模型來減少task啟動開稍,shuffle過程中避免 不必要的sort操作以及減少磁盤IO操作

2. 易用

  1)提供了豐富的API,支持Java,Scala,Python和R四種語言

  2)代碼量比MapReduce少2~5倍

3. 與Hadoop集成 讀寫HDFS/Hbase 與YARN集成 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM