0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

快速學習Spark和Hadoop的架構(gòu)的方法

IT家園 ? 2019-07-18 09:42 ? 次閱讀

Spark和Hadoop的架構(gòu)區(qū)別是什么,什么是spark,什么是Hadoop,怎么樣學習這些知識點?

總的來說,Spark采用更先進的架構(gòu),使得靈活性、易用性、性能等方面都比Hadoop更有優(yōu)勢,有取代Hadoop的趨勢,但其穩(wěn)定性有待進一步提高。我總結(jié),具體表現(xiàn)在如下幾個方面。

Spark和Hadoop的架構(gòu)有什么不同之處

Q:Spark和Hadoop的架構(gòu)區(qū)別

A:

Hadoop:MapRedcue由Map和Reduce兩個階段,并通過shuffle將兩個階段連接起來的。但是套用MapReduce模型解決問題,不得不將問題分解為若干個有依賴關(guān)系的子問題,每個子問題對應一個MapReduce作業(yè),最終所有這些作業(yè)形成一個DAG。

Spark:是通用的DAG框架,可以將多個有依賴關(guān)系的作業(yè)轉(zhuǎn)換為一個大的DAG。核心思想是將Map和Reduce兩個操作進一步拆分為多個元操作,這些元操作可以靈活組合,產(chǎn)生新的操作,并經(jīng)過一些控制程序組裝后形成一個大的DAG作業(yè)。

Q:Spark和Hadoop的中間計算結(jié)果處理區(qū)別

A:

Hadoop:在DAG中,由于有多個MapReduce作業(yè)組成,每個作業(yè)都會從HDFS上讀取一次數(shù)據(jù)和寫一次數(shù)據(jù)(默認寫三份),即使這些MapReduce作業(yè)產(chǎn)生的數(shù)據(jù)是中間數(shù)據(jù)也需要寫HDFS。這種表達作業(yè)依賴關(guān)系的方式比較低效,會浪費大量不必要的磁盤和網(wǎng)絡(luò)IO,根本原因是作業(yè)之間產(chǎn)生的數(shù)據(jù)不是直接流動的,而是借助HDFS作為共享數(shù)據(jù)存儲系統(tǒng)。

Spark:在Spark中,使用內(nèi)存(內(nèi)存不夠使用本地磁盤)替代了使用HDFS存儲中間結(jié)果。對于迭代運算效率更高。

Q:Spark和Hadoop的操作模型區(qū)別

A:

Hadoop:只提供了Map和Reduce兩種操作所有的作業(yè)都得轉(zhuǎn)換成Map和Reduce的操作。

Spark:提供很多種的數(shù)據(jù)集操作類型比如Transformations 包括map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues,sort,partionBy等多種操作類型,還提供actions操作包括Count,collect, reduce, lookup, save等多種。這些多種多樣的數(shù)據(jù)集操作類型,給開發(fā)上層應用的用戶提供了方便。

Q:spark中的RDD是什么,有哪些特性?

A:

A list of partitions:一個分區(qū)列表,RDD中的數(shù)據(jù)都存儲在一個分區(qū)列表中

A function for computing each split:作用在每一個分區(qū)中的函數(shù)

A list of dependencies on other RDDs:一個RDD依賴于其他多個RDD,這個點很重要,RDD的容錯機制就是依據(jù)這個特性而來的

Optionally,a Partitioner for key-value RDDs(eg:to say that the RDD is hash-partitioned):可選的,針對于kv類型的RDD才有這個特性,作用是決定了數(shù)據(jù)的來源以及數(shù)據(jù)處理后的去向

可選項,數(shù)據(jù)本地性,數(shù)據(jù)位置最優(yōu)

Q:概述一下spark中的常用算子區(qū)別(map,mapPartitions,foreach,foreachPatition)

A:map:用于遍歷RDD,將函數(shù)應用于每一個元素,返回新的RDD(transformation算子)

foreach:用于遍歷RDD,將函數(shù)應用于每一個元素,無返回值(action算子)

mapPatitions:用于遍歷操作RDD中的每一個分區(qū),返回生成一個新的RDD(transformation算子)

foreachPatition:用于遍歷操作RDD中的每一個分區(qū),無返回值(action算子)

總結(jié):一般使用mapPatitions和foreachPatition算子比map和foreach更加高效,推薦使用。如果你想要學好編程技能,請留意內(nèi)蒙達內(nèi)官網(wǎng),學習技能快,我們只選對的機構(gòu)!



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Hadoop
    +關(guān)注

    關(guān)注

    1

    文章

    90

    瀏覽量

    15935
  • SPARK
    +關(guān)注

    關(guān)注

    1

    文章

    105

    瀏覽量

    19842
收藏 人收藏

    評論

    相關(guān)推薦

    基于Kepware的Hadoop大數(shù)據(jù)應用構(gòu)建-提升數(shù)據(jù)價值利用效能

    背景 Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),它允許用戶在不需要深入了解分布式底層細節(jié)的情況下,開發(fā)分布式程序。Hadoop充分利用集群的威力進行高速運算和存儲,特別適用于
    的頭像 發(fā)表于 10-08 15:12 ?74次閱讀
    基于Kepware的<b class='flag-5'>Hadoop</b>大數(shù)據(jù)應用構(gòu)建-提升數(shù)據(jù)價值利用效能

    spark為什么比mapreduce快?

    spark為什么比mapreduce快? 首先澄清幾個誤區(qū): 1:兩者都是基于內(nèi)存計算的,任何計算框架都肯定是基于內(nèi)存的,所以網(wǎng)上說的spark是基于內(nèi)存計算所以快,顯然是錯誤的 2;DAG計算模型
    的頭像 發(fā)表于 09-06 09:45 ?162次閱讀

    深度學習中的時間序列分類方法

    的發(fā)展,基于深度學習的TSC方法逐漸展現(xiàn)出其強大的自動特征提取和分類能力。本文將從多個角度對深度學習在時間序列分類中的應用進行綜述,探討常用的深度學習模型及其改進
    的頭像 發(fā)表于 07-09 15:54 ?520次閱讀

    spark運行的基本流程

    前言: 由于最近對spark的運行流程非常感興趣,所以閱讀了《Spark大數(shù)據(jù)處理:技術(shù)、應用與性能優(yōu)化》一書。通過這本書的學習,了解了spark的核心技術(shù)、實際應用場景以及性能優(yōu)化的
    的頭像 發(fā)表于 07-02 10:31 ?302次閱讀
    <b class='flag-5'>spark</b>運行的基本流程

    Spark基于DPU的Native引擎算子卸載方案

    Spark Streaming)、機器學習Spark MLlib)和圖計算(GraphX)。Spark?使用內(nèi)存加載保存數(shù)據(jù)并進行迭代計算,減少磁盤溢寫,同時支持 Java、Sca
    的頭像 發(fā)表于 06-28 17:12 ?422次閱讀
    <b class='flag-5'>Spark</b>基于DPU的Native引擎算子卸載方案

    Spark基于DPU Snappy壓縮算法的異構(gòu)加速方案

    一、總體介紹 1.1 背景介紹 Apache Spark是專為大規(guī)模數(shù)據(jù)計算而設(shè)計的快速通用的計算引擎,是一種與 Hadoop 相似的開源集群計算環(huán)境,但是兩者之間還存在一些不同之處,這些不同之處使
    的頭像 發(fā)表于 03-26 17:06 ?669次閱讀
    <b class='flag-5'>Spark</b>基于DPU Snappy壓縮算法的異構(gòu)加速方案

    RDMA技術(shù)在Apache Spark中的應用

    、電信、零售、醫(yī)療保健還是物聯(lián)網(wǎng),Spark的應用幾乎遍及所有需要處理海量數(shù)據(jù)和復雜計算的領(lǐng)域。它的快速、易用和通用性,使得數(shù)據(jù)科學家和工程師能夠輕松實現(xiàn)數(shù)據(jù)挖掘、數(shù)據(jù)分析、實時處理等任務。 然而,在Spark的燦爛光環(huán)背后,一
    的頭像 發(fā)表于 03-25 18:13 ?1410次閱讀
    RDMA技術(shù)在Apache <b class='flag-5'>Spark</b>中的應用

    基于DPU和HADOS-RACE加速Spark 3.x

    背景簡介 Apache Spark(下文簡稱Spark)是一種開源集群計算引擎,支持批/流計算、SQL分析、機器學習、圖計算等計算范式,以其強大的容錯能力、可擴展性、函數(shù)式API、多語言支持(SQL
    的頭像 發(fā)表于 03-25 18:12 ?1204次閱讀
    基于DPU和HADOS-RACE加速<b class='flag-5'>Spark</b> 3.x

    Hadoop是什么?其核心由兩大部分組成,分別是什么?

    了分布式存儲和計算的方式,能夠快速有效地處理大量數(shù)據(jù),并具備良好的擴展性和容錯性。 Hadoop的核心由兩大部分組成,分別是Hadoop分布式文件系統(tǒng)(Hadoop Distribut
    的頭像 發(fā)表于 02-05 10:52 ?1532次閱讀

    華為企業(yè)架構(gòu)設(shè)計方法及實例

    企業(yè)架構(gòu)是一項非常復雜的系統(tǒng)性工程。公司在充分繼承原有架構(gòu)方法基礎(chǔ)上,博采眾家之長,融合基于職能的業(yè)務能力分析與基于價值的端到端流程分析,將”傳統(tǒng)架構(gòu)設(shè)計(TOGAF)”與“領(lǐng)域驅(qū)動(
    發(fā)表于 01-30 09:40 ?787次閱讀
    華為企業(yè)<b class='flag-5'>架構(gòu)</b>設(shè)計<b class='flag-5'>方法</b>及實例

    TVM編譯器的整體架構(gòu)和基本方法

    有將近兩個月沒有學習一些新東西,更新一下博客了。一直在忙公司的一個項目,是做一款支持LSTM和RNN的通用架構(gòu)加速IP。自己恰好負責指令編譯工作,雖然開始的指令比較粗糙,沒有一套完整的編譯器架構(gòu)
    的頭像 發(fā)表于 11-30 09:36 ?2105次閱讀
    TVM編譯器的整體<b class='flag-5'>架構(gòu)</b>和基本<b class='flag-5'>方法</b>

    Arm微架構(gòu)學習—開啟Armv9時代

    在上一篇文章“從A76到A78——在變化中學習Arm微架構(gòu)”中,我們了解了Arm處理器微架構(gòu)的基本組成,介紹了Armv8架構(gòu)最后幾代經(jīng)典處理器架構(gòu)
    的頭像 發(fā)表于 11-27 16:46 ?1053次閱讀
    Arm微<b class='flag-5'>架構(gòu)</b><b class='flag-5'>學習</b>—開啟Armv9時代

    變頻器架構(gòu)組成和設(shè)計方法

    電子發(fā)燒友網(wǎng)站提供《變頻器架構(gòu)組成和設(shè)計方法.doc》資料免費下載
    發(fā)表于 11-15 10:58 ?2次下載
    變頻器<b class='flag-5'>架構(gòu)</b>組成和設(shè)計<b class='flag-5'>方法</b>

    射頻接收機的架構(gòu)學習

    射頻接收機的架構(gòu)學習
    的頭像 發(fā)表于 10-30 16:21 ?468次閱讀
    射頻接收機的<b class='flag-5'>架構(gòu)</b><b class='flag-5'>學習</b>

    基于Hadoop云計算智能家居信息處理平臺

    電子發(fā)燒友網(wǎng)站提供《基于Hadoop云計算智能家居信息處理平臺.doc》資料免費下載
    發(fā)表于 10-30 11:06 ?0次下載
    基于<b class='flag-5'>Hadoop</b>云計算智能家居信息處理平臺