spark與Hadoop的區別


1. Mapreduce和Spark的相同和區別

  • 兩者都是用mr模型來進行並行計算
  • hadoop的一個作業:job
    • job分為map task和reduce task,每個task都是在自己的進程中運行的
    • 當task結束時,進程也會結束
  • spark用戶提交的任務:application
    • 一個application對應一個sparkcontext,app中存在多個job
    • 每觸發一次action操作就會產生一個job
    • 這些job可以並行或串行執行
    • 每個job中有多個stage,stage是shuffle過程中DAGSchaduler通過RDD之間的依賴關系划分job而來的
    • 每個stage里面有多個task,組成taskset有TaskSchaduler分發到各個executor中執行
    • executor的生命周期是和app一樣的,即使沒有job運行也是存在的,所以task可以快速啟動讀取內存進行計算。
  • hadoop的job只有map和reduce操作,表達能力比較欠缺
    • 在mr過程中會重復的讀寫hdfs,造成大量的io操作,多個job需要自己管理關系。
  • spark的迭代計算都是在內存中進行的
    • API中提供了大量的RDD操作如join,groupby等
    • 通過DAG圖可以實現良好的容錯

 


免責聲明!

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



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