日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark初识-Spark与Hadoop的比较

發布時間:2025/3/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark初识-Spark与Hadoop的比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spark,是分布式計算平臺,是一個用scala語言編寫的計算框架,基于內存的快速、通用、可擴展的大數據分析引擎

Hadoop,是分布式管理、存儲、計算的生態系統;包括HDFS(存儲)、MapReduce(計算)、Yarn(資源調度)

一、Spark VS Hadoop 概覽

Hadoop和Spark都是并行計算,兩者都是用MR模型進行計算

Hadoop一個作業稱為一個Job,Job里面分為Map Task和Reduce Task階段,每個Task都在自己的進程中運行,當Task結束時,進程也會隨之結束;

Spark用戶提交的任務稱為application,一個application對應一個SparkContext,app中存在多個job,每觸發一次action操作就會產生一個job。這些job可以并行或串行執行,每個job中有多個stage,stage是shuffle過程中DAGScheduler通過RDD之間的依賴關系劃分job而來的,每個stage里面有多個task,組成taskset,由TaskScheduler分發到各個executor中執行;executor的生命周期是和app一樣的,即使沒有job運行也是存在的,所以task可以快速啟動讀取內存進行計算。

ps:一個Application -> 多個job ->一個job多個stage -> 一個stage多個task

mapreduce 讀 – 處理 - 寫磁盤 – 讀 - 處理 - 寫
spark 讀 - 處理 - 處理 --(需要的時候)寫磁盤 - 寫

HadoopSpark
類型基礎平臺,包括計算、調度、存儲分布式計算工具
場景大規模數據集上的批處理迭代計算、交互式計算、流計算
價格對機器要求低、便宜對內存有要求、相對較貴
編程范式Map+Reduce,API較為底層、適應性差RDD組成DAG有向無環圖,API較為頂層,方便使用
數據存儲結構MapReduce計算結果存在HDFS磁盤上,延遲大RDD中間運算結果存在內存上,延遲小
運行方式Task以進程的方式維護,任務啟動慢Task以線程的方式維護,任務啟動快

二、Spark相對Hadoop的優越性

Spark 是在借鑒了 MapReduce 之上發展而來的,繼承了其分布式并行計算的優點并改進了 MapReduce 明顯的缺陷,(spark 與 hadoop 的差異)具體如下:

首先,Spark 把中間數據放到內存中,迭代運算效率高。MapReduce 中計算結果需要落地,保存到磁盤上,這樣勢必會影響整體速度,而 Spark 支持 DAG 圖的分布式并行計算的編程框架,減少了迭代過程中數據的落地,提高了處理效率。(延遲加載)

其次,Spark 容錯性高。Spark 引進了彈性分布式數據集 RDD (Resilient DistributedDataset) 的抽象,它是分布在一組節點中的只讀對象集合,這些集合是彈性的,如果數據集一部分丟失,則可以根據“血統”(即允許基于數據衍生過程)對它們進行重建。另外在RDD 計算時可以通過 CheckPoint 來實現容錯。

最后,Spark 更加通用。mapreduce 只提供了 Map 和 Reduce 兩種操作,Spark 提供的數據集操作類型有很多,大致分為:Transformations 和 Actions 兩大類。Transformations包括 Map、Filter、FlatMap、Sample、GroupByKey、ReduceByKey、Union、Join、Cogroup、MapValues、Sort 等多種操作類型,同時還提供 Count, Actions 包括 Collect、Reduce、Lookup 和 Save 等操作

三、 各方面比較

  • Spark對標于Hadoop中的計算模塊MR,但是速度和效率比MR要快得多;
  • Spark沒有提供文件管理系統,所以,它必須和其他的分布式文件系統進行集成才能運作,它只是一個計算分析框架,專門用來對分布式存儲的數據進行計算處理,它本身并不能存儲數據;
  • Spark可以使用Hadoop的HDFS或者其他云數據平臺進行數據存儲,但是一般使用HDFS;
  • Spark可以使用基于HDFS的HBase數據庫,也可以使用HDFS的數據文件,還可以通過jdbc連接使用Mysql數據庫數據;Spark可以對數據庫數據進行修改刪除,而HDFS只能對數據進行追加和全表刪除;
  • Spark數據處理速度秒殺Hadoop中MR;
  • Spark處理數據的設計模式與MR不一樣,Hadoop是從HDFS讀取數據,通過MR將中間結果寫入HDFS;然后再重新從HDFS讀取數據進行MR,再刷寫到HDFS,這個過程涉及多次落盤操作,多次磁盤IO,效率并不高;而Spark的設計模式是讀取集群中的數據后,在內存中存儲和運算,直到全部運算完畢后,再存儲到集群中;
  • Spark是由于Hadoop中MR效率低下而產生的高效率快速計算引擎,批處理速度比MR快近10倍,內存中的數據分析速度比Hadoop快近100倍(源自官網描述);
  • Spark中RDD一般存放在內存中,如果內存不夠存放數據,會同時使用磁盤存儲數據;通過RDD之間的血緣連接、數據存入內存中切斷血緣關系等機制,可以實現災難恢復,當數據丟失時可以恢復數據;這一點與Hadoop類似,Hadoop基于磁盤讀寫,天生數據具備可恢復性;
  • Spark引進了內存集群計算的概念,可在內存集群計算中將數據集緩存在內存中,以縮短訪問延遲,對7的補充;
  • Spark中通過DAG圖可以實現良好的容錯。
  • 四、三大分布式計算系統

    Hadoop適合處理離線的靜態的大數據;

    Spark適合處理離線的流式的大數據;

    Storm/Flink適合處理在線的實時的大數據。

    *、本文參考

    Spark和Hadoop的區別和比較
    Spark與Hadoop相比的優缺點
    [Spark 和 Hadoop MapReduce 對比](

    總結

    以上是生活随笔為你收集整理的Spark初识-Spark与Hadoop的比较的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。