04Spark 運行架構(gòu)

      網(wǎng)友投稿 618 2022-05-30

      大家好,我是一條~

      5小時推開Spark的大門,第四小時,帶大家理解Spark的核心概念。

      話不多說,開干!

      運行架構(gòu)

      大家還記得第一節(jié)的系統(tǒng)架構(gòu)圖嗎,就是這張

      有同學(xué)反饋說都是英文的看不太懂,對照起來看又特別麻煩。

      這個是因為有些概念我也找不到特別標準且統(tǒng)一的翻譯,這也是目前的一個現(xiàn)狀,很多文檔都是英文的,雖然有國人翻譯,但是不溝通統(tǒng)一,難免會對新手造成困擾。

      要改變這一現(xiàn)狀,需要所有程序員的共同努力。

      首先回顧一下每個節(jié)點都是什么意思:

      Spark整體采用了標準master-slave的結(jié)構(gòu)。

      圖中的Driver表示master,負責(zé)管理整個集群中的作業(yè)任務(wù)調(diào)度;Executor 則是 slave,負責(zé)實際執(zhí)行任務(wù)。

      1.Driver

      負責(zé)實際代碼的執(zhí)行工作,即執(zhí)行 Spark 任務(wù)中的 main 方法,在 Spark 作業(yè)執(zhí)行時主要負責(zé):

      將用戶程序轉(zhuǎn)化為作業(yè)(job)

      在Executor之間調(diào)度任務(wù)(task)

      跟蹤Executor的執(zhí)行情況

      通過WebUI展示查詢運行情況

      簡單理解,所謂Driver就是驅(qū)使整個應(yīng)用運行起來的程序。

      2.SparkContext

      每一個Spark應(yīng)用都是一個SparkContext實例,可以理解為一個SparkContext就是一個spark application的生命周期,一旦SparkContext創(chuàng)建之后,就可以用這個SparkContext來創(chuàng)建RDD、累加器、廣播變量,并且可以通過SparkContext訪問Spark的服務(wù),運行任務(wù)。

      就像上一節(jié)課我們與Spark建立連接的代碼:

      // 創(chuàng)建 Spark 運行配置對象 val sparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount") // 創(chuàng)建 Spark 上下文環(huán)境對象(連接對象) val sc = new SparkContext(sparkConf)

      1

      2

      3

      4

      4.Master & Worker

      Spark集群的獨立部署環(huán)境中,不需要依賴其他的資源調(diào)度框架,自身就實現(xiàn)了資源調(diào)度的功能(當然也有Yarn調(diào)度模式),所以環(huán)境中還有其他兩個核心組件:Master 和 Worker。

      Master主要負責(zé)資源的調(diào)度和分配的進程,并進行集群的監(jiān)控等職責(zé)。

      Worker也是進程,運行在集群中的一臺服務(wù)器上,由 Master 分配資源對數(shù)據(jù)進行并行的處理和計算。

      簡單理解,你是Worker,Master是你老板。

      5.Executor

      Spark Executor是集群中工作節(jié)點(worker node)中的一個進程,負責(zé)在Spark作業(yè)中運行具體任務(wù),也就是真正干活的那個。

      任務(wù)彼此之間相互獨立。Spark應(yīng)用啟動時,Executor節(jié)點被同時啟動,并且始終伴隨著整個 Spark 應(yīng)用的生命周期而存在。

      如果有 Executor 節(jié)點發(fā)生了故障或崩潰,Spark 應(yīng)用也可以繼續(xù)執(zhí)行,會將出錯節(jié)點上的任務(wù)調(diào)度到其他 Executor節(jié)點上繼續(xù)運行。

      就好比這個人干不動了,換個人接著干。

      Executor的核心功能

      04Spark 運行架構(gòu)

      負責(zé)運行組成 Spark 應(yīng)用的任務(wù),并將結(jié)果返回給驅(qū)動器進程。

      它們通過自身的塊管理器(Block Manager),作為用戶程序的緩存,因此任務(wù)可以在運行時充分利用緩存,提高運算速度。

      核心概念

      了解了運行架構(gòu),還有一些Spark的核心概念需要理解。

      1.并行度

      我們常說高并發(fā),是說同時處理大量請求的能力,那么在分布式計算框架中同樣是多個任務(wù)同時執(zhí)行,不同的是分布在不同的計算節(jié)點同時進行計算,是能夠真正地實現(xiàn)多任務(wù)并行執(zhí)行。

      所以整個集群并行執(zhí)行任務(wù)的數(shù)量稱之為并行度。

      那么一個作業(yè)到底并行度是多少呢?這個取決于框架的默認配置。應(yīng)用程序也可以在運行過程中動態(tài)修改。

      2.有向無環(huán)圖

      DAG(Directed Acyclic Graph)

      大數(shù)據(jù)計算引擎框架我們根據(jù)使用方式的不同一般會分為四類,其中第一類就是Hadoop 所承載的 MapReduce,它將計算分為兩個階段,分別為 Map 階段 和 Reduce 階段。

      對于上層應(yīng)用來說,就不得不想方設(shè)法去拆分算法,甚至于不得不在上層應(yīng)用實現(xiàn)多個Job的串聯(lián),以完成一個完整的算法,例如迭代計算。

      由于這樣的弊端,催生了支持DAG框架的產(chǎn)生。因此,支持 DAG 的框架被劃分為第二代計算引擎。

      接下來就是以 Spark 為代表的第三代的計算引擎。第三代計算引擎的特點主要是 Job 內(nèi)部的DAG支持(不跨越 Job),以及實時計算。

      這里所謂的有向無環(huán)圖,并不是真正意義的圖形,而是由 Spark 程序直接映射成的數(shù)據(jù)流的高級抽象模型。簡單理解就是將整個程序計算的執(zhí)行過程用圖形表示出來,這樣更直觀,更便于理解,可以用于表示程序的拓撲結(jié)構(gòu)。

      DAG是一種非常重要的圖論數(shù)據(jù)結(jié)構(gòu)。如果一個有向圖無法從任意頂點出發(fā)經(jīng)過若干條邊回到該點,則這個圖就是有向無環(huán)圖,如圖:

      3.RDD

      到了最重要的了,也是最后一個大坑,內(nèi)容比較多,留給明天填。

      我們下期見!

      spark 任務(wù)調(diào)度

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Pandas實例|藥品發(fā)放匯總與excel表數(shù)據(jù)回填
      下一篇:華為云數(shù)據(jù)庫亮相2021PG中國技術(shù)大會并斬獲4項大獎
      相關(guān)文章
      国产亚洲国产bv网站在线| 777亚洲精品乱码久久久久久| 亚洲成人动漫在线观看| 久久91亚洲精品中文字幕| 人人狠狠综合久久亚洲88| 亚洲日韩精品A∨片无码| 国产亚洲av片在线观看播放| 国产亚洲成av人片在线观看| 久久精品国产亚洲网站| 亚洲av无码乱码国产精品| 亚洲s色大片在线观看| 亚洲bt加勒比一区二区| 亚洲视频在线观看| 亚洲精品在线播放视频| 亚洲乱码一二三四区麻豆| 亚洲va在线va天堂成人| 亚洲色在线无码国产精品不卡| 亚洲熟妇无码一区二区三区| 亚洲欧美日韩一区二区三区| 亚洲av色香蕉一区二区三区| 国产av无码专区亚洲av毛片搜| www国产亚洲精品久久久日本| 亚洲国产成人乱码精品女人久久久不卡| 亚洲第一区精品观看| 久久久久久A亚洲欧洲AV冫| 国产成人A亚洲精V品无码| 亚洲成AV人片一区二区| 亚洲一区二区三区夜色| 亚洲日本在线播放| 亚洲日韩精品国产一区二区三区| 亚洲第一综合天堂另类专| 亚洲Av无码乱码在线观看性色 | 亚洲一区二区三区91| 中文字幕乱码亚洲精品一区| 色偷偷尼玛图亚洲综合| 亚洲色图综合在线| 亚洲AV永久无码精品一百度影院| 亚洲一区二区成人| 亚洲精品伊人久久久久| 色婷婷亚洲一区二区三区| 奇米影视亚洲春色|