溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

發(fā)布時(shí)間:2021-08-30 20:45:09 來(lái)源:億速云 閱讀:151 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析”吧!

目錄
  • 1. Spark 與 Hadoop 比較

    • 1.1 Haoop 的缺點(diǎn)

    • 1.2 相較于Hadoop MR的優(yōu)點(diǎn)

  • 2. Spark 生態(tài)系統(tǒng)

    • 2.1 大數(shù)據(jù)處理的三種類型

      • 1. 復(fù)雜的批量數(shù)據(jù)處理

      • 2. 基于歷史數(shù)據(jù)的交互式查詢

      • 3. 基于實(shí)時(shí)數(shù)據(jù)流的數(shù)據(jù)處理

    • 2.2 BDAS架構(gòu)

      • 2.3 Spark 生態(tài)系統(tǒng)

      • 3. 基本概念與架構(gòu)設(shè)計(jì)

        • 3.1 基本概念

          • 3.2 運(yùn)行架構(gòu)

            • 3.3 各種概念之間的相互關(guān)系

            • 4. Spark運(yùn)行基本流程

              • 4.1 運(yùn)行流程

                • 4.2 運(yùn)行架構(gòu)特點(diǎn)

                • 5. Spark的部署和應(yīng)用方式

                  • 5.1 Spark的三種部署方式

                    • 5.1.1 Standalone

                    • 5.1.2 Spark on Mesos

                    • 5.1.3 Spark on YARN

                  • 5.2 從Hadoop+Storm架構(gòu)轉(zhuǎn)向Spark架構(gòu)

                    • Hadoop+Storm架構(gòu)

                    • 用Spark架構(gòu)滿足批處理和流處理需求

                    • Spark架構(gòu)的優(yōu)點(diǎn):

                  • 5.3 Hadoop和Spark的統(tǒng)一部署

                    • 不同計(jì)算框架統(tǒng)一運(yùn)行在YARN中

                1. Spark 與 Hadoop 比較

                1.1 Haoop 的缺點(diǎn)

                • 1. 表達(dá)能力有限;

                • 2. 磁盤IO開銷大;

                • 3. 延遲高;

                • 4. 任務(wù)之間的銜接涉及IO開銷;

                • 5. 在前一個(gè)任務(wù)執(zhí)行完之前,其他任務(wù)就無(wú)法開始,難以勝任復(fù)雜、多階段的計(jì)算任務(wù)。

                1.2 相較于Hadoop MR的優(yōu)點(diǎn)

                • 1. Spark的計(jì)算模式也屬于MR,但不局限于Map和Reduce操作,它還提供了多種數(shù)據(jù)集操作類型,編程模式也比Hadoop MR更靈活;

                • 2. Spark提供了內(nèi)存計(jì)算,可將中間結(jié)果放到內(nèi)存中,對(duì)于迭代運(yùn)算效率更高;

                • 3. Spark 基于DAG的任務(wù)調(diào)度執(zhí)行機(jī)制,要優(yōu)于Hadoop MR的迭代執(zhí)行機(jī)制。


                SparkMapReduce
                數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)使用內(nèi)存構(gòu)建彈性分布式數(shù)據(jù)集RDD,對(duì)數(shù)據(jù)進(jìn)行運(yùn)算和cache。磁盤HDFS文件系統(tǒng)的split
                編程范式DAG(Transformation+Action)Map+Reduce
                計(jì)算中間結(jié)果的存儲(chǔ)在內(nèi)存中維護(hù),存取速度比磁盤高幾個(gè)數(shù)量級(jí)落到磁盤,IO及序列化、反序列化代價(jià)大
                Task維護(hù)方式線程進(jìn)程
                時(shí)間對(duì)于小數(shù)據(jù)集讀取能夠達(dá)到亞秒級(jí)的延遲需要數(shù)秒時(shí)間才能啟動(dòng)任務(wù)

                2. Spark 生態(tài)系統(tǒng)

                2.1 大數(shù)據(jù)處理的三種類型

                1. 復(fù)雜的批量數(shù)據(jù)處理

                時(shí)間跨度在數(shù)十分鐘到數(shù)小時(shí)

                Haoop MapReduce

                2. 基于歷史數(shù)據(jù)的交互式查詢

                時(shí)間跨度在數(shù)十秒到數(shù)分鐘

                Cloudera、Impala 這兩者實(shí)時(shí)性均優(yōu)于hive。

                3. 基于實(shí)時(shí)數(shù)據(jù)流的數(shù)據(jù)處理

                時(shí)間跨度在數(shù)百毫秒到數(shù)秒

                Storm

                2.2 BDAS架構(gòu)

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                2.3 Spark 生態(tài)系統(tǒng)

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                3. 基本概念與架構(gòu)設(shè)計(jì)

                3.1 基本概念

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                3.2 運(yùn)行架構(gòu)

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                Spark采用Executor的優(yōu)點(diǎn):(相比于Hadoop的MR)

                • 1. 利用多線程來(lái)執(zhí)行具體的任務(wù),減少任務(wù)的啟動(dòng)開銷;

                • 2. Executor中有一個(gè)BlockManager存儲(chǔ)模塊,會(huì)將內(nèi)存和磁盤共同作為存儲(chǔ)設(shè)備,有效減少IO開銷。

                3.3 各種概念之間的相互關(guān)系

                • 一個(gè)Application由一個(gè)Driver和若干個(gè)Job構(gòu)成

                • 一個(gè)Job由多個(gè)Stage構(gòu)成

                • 一個(gè)Stage由多個(gè)沒有shuffle關(guān)系的Task組成

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                當(dāng)執(zhí)行一個(gè)Application時(shí),Driver會(huì)向集群管理器申請(qǐng)資源,啟動(dòng)Executor,

                并向Executor發(fā)送應(yīng)用程序代碼和文件,然后在Executor上執(zhí)行Task,運(yùn)行結(jié)束后,

                執(zhí)行結(jié)果會(huì)返回給Driver,或者寫到HDFS或者其他數(shù)據(jù)庫(kù)中。

                4. Spark運(yùn)行基本流程

                4.1 運(yùn)行流程

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                1. 為應(yīng)用構(gòu)建起基本的運(yùn)行環(huán)境,即由Driver創(chuàng)建一個(gè)SparkContext進(jìn)行資源的申請(qǐng)、任務(wù)的分配和監(jiān)控。

                2. 資源管理器為Executor分配資源,并啟動(dòng)Executor進(jìn)程。

                • 3.1 SparkContext根據(jù)RDD的依賴關(guān)系構(gòu)建DAG圖,DAG圖提交給DAGScheduler解析成Stage,然后把一個(gè)個(gè)TaskSet提交給底層調(diào)度器TaskScheduler處理。

                • 3.2 Executor向SparkContext申請(qǐng)Task,TaskScheduler將Task發(fā)送給Executor運(yùn)行并提供應(yīng)用程序代碼。

                4. Task在Executor上運(yùn)行把執(zhí)行結(jié)果反饋給TaskScheduler,然后反饋給DAGScheduler,運(yùn)行完畢后寫入數(shù)據(jù)并釋放所有資源。

                4.2 運(yùn)行架構(gòu)特點(diǎn)

                1. 每個(gè)Application都有自己專屬的Executor進(jìn)程,并且該進(jìn)程在Application運(yùn)行期間一直駐留。Executor進(jìn)程以多線程的方式運(yùn)行Task。

                2. Spark運(yùn)行過程與資源管理器無(wú)關(guān),只要能夠獲取Executor進(jìn)程并保持通信即可。

                3. Task采用了數(shù)據(jù)本地性和推測(cè)執(zhí)行等優(yōu)化機(jī)制。(計(jì)算向數(shù)據(jù)靠攏。)

                5. Spark的部署和應(yīng)用方式

                5.1 Spark的三種部署方式

                5.1.1 Standalone

                類似于MR1.0,slot為資源分配單位,但性能并不好。

                5.1.2 Spark on Mesos

                Mesos和Spark有一定的親緣關(guān)系。

                5.1.3 Spark on YARN

                mesos和yarn的聯(lián)系

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                5.2 從Hadoop+Storm架構(gòu)轉(zhuǎn)向Spark架構(gòu)

                Hadoop+Storm架構(gòu)

                這種部署方式較為繁瑣。

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                用Spark架構(gòu)滿足批處理和流處理需求

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                Spark用快速的小批量計(jì)算模擬流計(jì)算,并非真實(shí)的流計(jì)算。

                無(wú)法實(shí)現(xiàn)毫秒級(jí)的流計(jì)算,對(duì)于需要毫秒級(jí)實(shí)時(shí)響應(yīng)的企業(yè)應(yīng)用而言,仍需采用流計(jì)算框架Storm等。

                Spark架構(gòu)的優(yōu)點(diǎn):
                • 1. 實(shí)現(xiàn)一鍵式安裝和配置,線程級(jí)別的任務(wù)監(jiān)控和告警;

                • 2. 降低硬件集群、軟件維護(hù)、任務(wù)監(jiān)控和應(yīng)用開發(fā)的難度;

                • 3. 便于做成統(tǒng)一的硬件、計(jì)算平臺(tái)資源池。

                5.3 Hadoop和Spark的統(tǒng)一部署

                Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析

                不同計(jì)算框架統(tǒng)一運(yùn)行在YARN中

                好處如下:

                • 1. 計(jì)算資源按需伸縮;

                • 2. 不用負(fù)載應(yīng)用混搭,集群利用率高;

                • 3. 共享底層存儲(chǔ),避免數(shù)據(jù)跨集群遷移

                現(xiàn)狀:

                1. Spark目前還是無(wú)法取代Hadoop生態(tài)系統(tǒng)中的一些組件所實(shí)現(xiàn)的功能。

                2. 現(xiàn)有的Hadoop組件開發(fā)的應(yīng)用,完全遷移到Spark上需要一定的成本。

                感謝各位的閱讀,以上就是“Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Spark的簡(jiǎn)介以及與Hadoop的對(duì)比分析這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

                向AI問一下細(xì)節(jié)

                免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

                AI