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

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

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

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

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

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

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

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

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

A:

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

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

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

A:

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

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

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ā)上層應(yīng)用的用戶提供了方便。

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,這個點(diǎn)很重要,RDD的容錯機(jī)制就是依據(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ù)應(yīng)用于每一個元素,返回新的RDD(transformation算子)

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

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

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

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



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

    關(guān)注

    1

    文章

    90

    瀏覽量

    15995
  • SPARK
    +關(guān)注

    關(guān)注

    1

    文章

    105

    瀏覽量

    19935
收藏 人收藏

    評論

    相關(guān)推薦

    傳統(tǒng)機(jī)器學(xué)習(xí)方法和應(yīng)用指導(dǎo)

    用于開發(fā)生物學(xué)數(shù)據(jù)的機(jī)器學(xué)習(xí)方法。盡管深度學(xué)習(xí)(一般指神經(jīng)網(wǎng)絡(luò)算法)是一個強(qiáng)大的工具,目前也非常流行,但它的應(yīng)用領(lǐng)域仍然有限。與深度學(xué)習(xí)相比,傳統(tǒng)方法在給定問題上的開發(fā)和測試速度更快。
    的頭像 發(fā)表于 12-30 09:16 ?301次閱讀
    傳統(tǒng)機(jī)器<b class='flag-5'>學(xué)習(xí)方法</b>和應(yīng)用指導(dǎo)

    Pytorch深度學(xué)習(xí)訓(xùn)練的方法

    掌握這 17 種方法,用最省力的方式,加速你的 Pytorch 深度學(xué)習(xí)訓(xùn)練。
    的頭像 發(fā)表于 10-28 14:05 ?237次閱讀
    Pytorch深度<b class='flag-5'>學(xué)習(xí)</b>訓(xùn)練的<b class='flag-5'>方法</b>

    如何學(xué)習(xí)ARM?

    學(xué)習(xí)者和專家進(jìn)行交流和討論。通過互動可以獲得更多的學(xué)習(xí)資源、解決問題的方法,還可以結(jié)識志同道合的朋友。 7.持續(xù)學(xué)習(xí)和實踐: 學(xué)習(xí) AR
    發(fā)表于 10-11 10:42

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

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

    機(jī)器學(xué)習(xí)中的數(shù)據(jù)分割方法

    在機(jī)器學(xué)習(xí)中,數(shù)據(jù)分割是一項至關(guān)重要的任務(wù),它直接影響到模型的訓(xùn)練效果、泛化能力以及最終的性能評估。本文將從多個方面詳細(xì)探討機(jī)器學(xué)習(xí)中數(shù)據(jù)分割的方法,包括常見的分割方法、各自的優(yōu)缺點(diǎn)、
    的頭像 發(fā)表于 07-10 16:10 ?2027次閱讀

    深度學(xué)習(xí)中的時間序列分類方法

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

    spark運(yùn)行的基本流程

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

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

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

    淺談存內(nèi)計算生態(tài)環(huán)境搭建以及軟件開發(fā)

    )適配到存內(nèi)計算架構(gòu)中。 (二)研究現(xiàn)狀 隨著存內(nèi)計算硬件的發(fā)展,軟件開發(fā)社區(qū)正在尋找方法將這種新技術(shù)集成到傳統(tǒng)的軟件開發(fā)工作流程中。例如,流行的開源框架Apache Spark已經(jīng)開始探索如何利用存
    發(fā)表于 05-16 16:40

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

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

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

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

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

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

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

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

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

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