Spark之旅 (一) spark運行架構(gòu)、 基本概念

spark運行架構(gòu):

1、Driver : spark應用的任務控制節(jié)點

2、Executor : spark應用的任務的執(zhí)行進程

3、Cluster Manager : spark任務的資源管理器

如圖:


1

spark運行架構(gòu)包括Cluster Manager、Driver和Executor;

Executor內(nèi)有線程池,通過多線程執(zhí)行相關(guān)任務;

Task的中間結(jié)果直接寫入到內(nèi)存,有效減少IO開銷。

名詞解釋:

1、Application:應用,即我們提交到Spark的執(zhí)行程序

2、Job:Spark中對RDD進行Action操作所產(chǎn)生的RDD處理流程

3、Stage:階段,一個Job會切分成多過Stage,各個Stage之間按照順序執(zhí)行


一個Spark Application包含一個Driver和多個job

一個job包含多個Stage,一個Stage又包含多個Task

4、SparkContext:整個應用的上下文,控制應用的生命周期

5、RDD:彈性分布式數(shù)據(jù)集(Resilient Distributed Dataset)

6、DAG:是Directed Acyclic Graph(有向無環(huán)圖)的簡稱,反映RDD之間的依賴關(guān)系


1、提交應用后,Driver會創(chuàng)建SparkContext實例,申請資源

2、ClusterManager分配資源,啟動Executor進程,Executor向Dirver注冊并申請任務

3、SparkContext生成DAG圖通過DAGScheduler解析,生產(chǎn)多個Stage并通過TaskScheduler分配到各個分配給Executor執(zhí)行

過程:

當一個spark任務被提交的時候,首先要為這個應用構(gòu)建基本的運行環(huán)境,即有任務的控制節(jié)點Driver去創(chuàng)建一個應用的上下文sparkCentext, 并且由sparkCentext負責與Cluster Manager 進行注冊申請資源。這里呢也就是我們的第一個步,資源管理器為Executor分配資源,并啟動Executor進程。Executor與資源管理器保持心跳鏈接,同時向Dirver申請任務,sparkCentext根據(jù)RDD的依賴關(guān)系構(gòu)建出DAG圖,將DAG圖交給DAG的調(diào)度器進行解析,最終將DAG分解成多個Stage,Stage就是一個任務集,最終將一個一個的任務集交個底層的任務調(diào)度器進行處理, 任務調(diào)度器將任務分發(fā)給Executor運行,任務在Executor上運行將結(jié)果反饋給Driver,運行完畢之后把數(shù)據(jù)進行寫入,并且釋放掉所有占用的資源。

執(zhí)行特點:

1、Job的執(zhí)行過程與資源管理器無關(guān),資源管理器只分配資源

2、Executor含有線程池,以多線程的方式提高任務的執(zhí)行效率

3、每個Task產(chǎn)生的結(jié)果會放入內(nèi)存,避免了大量的IO開銷



1.Application:基于spark的用戶程序,包含了一個driver program 和集群中多個 executor

2.Driver Program:運行application的main()函數(shù)并自動創(chuàng)建SparkContext。通常

SparkContext 代表driver program

3.Executor:為某個Application運行在worker node 上的一個進程。該進程負責運行task并負責將數(shù)據(jù)存儲在內(nèi)存或者硬盤上,每個application 都有自己獨立的 executors

4.Cluster Mannager:在集群上獲得資源的外部服務(spark standalon,mesos,yarm)

5.Worker Node:集群中任何可運行application 代碼的節(jié)點

6.RDD:spark 的基本運算單元,通過scala集合轉(zhuǎn)化,讀取數(shù)據(jù)集生成或者由其他RDD進過算子操作得到

7.Job:可以被拆分成task并行計算的單元,一般為spark action 觸發(fā)的一次執(zhí)行作業(yè)

8.Stage:每個job會被拆分成很多組task,每組任務被稱為stage,也可稱TaskSet,該屬于經(jīng)常在日志中看到

9.task:被送到executor上執(zhí)行的工作單元

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容