• <rp id="kt95d"><ruby id="kt95d"></ruby></rp>
  • <th id="kt95d"></th>
    <button id="kt95d"><acronym id="kt95d"></acronym></button>

      <th id="kt95d"></th>

    1. 教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      大數據的兩種計算框架優劣對比,哪個更適合開發?

      更新時間:2020年11月18日16時07分 來源:傳智播客 瀏覽次數:

        Hadoop與Spark兩者都是大數據計算框架,但是兩者各自都有自己的優勢,關于Spark與Hadoop的對比,主要有以下幾點:

        1. 編程方式

        Hadoop的MapReduce在計算數據時,計算過程必須要轉化為Map和Reduce兩個過程,從而難以描述復雜的數據處理過程;而Spark的計算模型不局限于Map和Reduce操作,還提供了多種數據集的操作類型,編程模型比MapReduce更加靈活。

        2. 數據存儲

        Hadoop的MapReduce進行計算時,每次產生的中間結果都是存儲在本地磁盤中;而Spark在計算時產生的中間結果存儲在內存中。

        3. 數據處理

        Hadoop在每次執行數據處理時,都需要從磁盤中加載數據,導致磁盤的IO開銷較大;而Spark在執行數據處理時,只需要將數據加載到內存中,之后直接在內存中加載中間結果數據集即可,減少了磁盤的IO開銷。

        4. 數據容錯

        MapReduce計算的中間結果數據,保存在磁盤中,并且Hadoop框架底層實現了備份機制,從而保證了數據容錯;同樣Spark RDD實現了基于Lineage的容錯機制和設置檢查點兩種方式的容錯機制,彌補數據在內存處理時斷電數據丟失的問題。關于Spark容錯機制我們在第三章Spark RDD彈性分布式數據集中將會詳細講解。

        在Spark與Hadoop性能對比中,較為明顯的缺陷是Hadoop 中的MapReduce計算延遲較高,無法勝任當下爆發式的數據增長所要求的實時、快速計算的需求。接下來,我們通過圖1來詳細講解這一原因。

        圖1 Hadoop與Spark執行流程

        從圖1中可以看出,使用Hadoop MapReduce進行計算時,每次計算產生的中間結果都需要從磁盤中讀取并寫入,大大增加了磁盤的IO開銷,而使用Spark進行計算時,需要先將磁盤中的數據讀取到內存中,產生的數據不再寫入磁盤,直接在內存中迭代處理,這樣就避免了從磁盤中頻繁讀取數據造成不必要的開銷。通過官方計算測試,Hadoop與Spark在執行邏輯斯蒂回歸時所需的時間對比,如圖2所示。

       圖2 Hadoop與Spark執行邏輯回歸時間對比

        從圖2可以看出,Hadoop與Spark執行所需時間相差超過100倍。

      猜你喜歡:

      如何操作MapReduce的性能調優 

      Mapper類中的map()方法怎么用 

      傳智播客大數據培訓課程 

      0 分享到:
      和我們在線交談!
      免费99精品国产自在现线,精品精品国产男人的天堂,国语自产精品视频在 视频_主页