Spark核心原理

2022-06-11 10:03:10 字數 1654 閱讀 8714

寬依賴:有shuffle

父rdd的乙個分割槽會被子rdd的多個分割槽所依賴

窄依賴:沒有shuffle

父rdd的乙個分割槽只會被子rdd的1個分割槽所依賴

總結:窄依賴: 並行化+容錯

寬依賴: 進行階段劃分(shuffle後的階段需要等待shuffle前的階段計算完才能執行)

spark的dag:就是spark任務/程式執行的流程圖!

dag的開始:從建立rdd開始

dag的結束:到action結束

乙個spark程式中有幾個action操作就有幾個dag!

stage:是dag中根據shuffle劃分出來的階段!

前面的階段執行完才可以執行後面的階段!

同乙個階段中的各個任務可以並行執行無需等待!

2.driver:驅動程式,就是用來執行main方法的jvm程序,裡面會執行一些drive端的**,如建立sparkcontext,設定應用名,設定日誌級別...

3.sparkcontext:spark執行時的上下文環境,用來和clustermanager進行通訊的,並進行資源的申請、任務的分配和監控等

5.worker:工作節點,是擁有cpu/記憶體等資源的機器,是真正幹活的節點

6.executor:執行在worker中的jvm程序!

7.rdd:彈性分布式資料集

8.dag:有向無環圖,就是根據action形成的rdd的執行流程圖---靜態的圖

9.job:作業,按照dag進行執行就形成了job---按照圖動態的執行

10.stage:dag中,根據shuffle依賴劃分出來的乙個個的執行階段!

11.task:乙個分割槽上的一系列操作(pipline上的一系列流水線操作)就是乙個task,同乙個stage中的多個task可以並行執行!(乙個task由乙個執行緒執行),所以也可以這樣說:task(執行緒)是執行在executor(程序)中的最小單位!

12.taskset:任務集,就是同乙個stage中的各個task組成的集合!

spark核心架構

driver部分的 sparkconf sparkcontext driver 部分 val conf new sparkconf val sc new sparkcontext conf end executor部分 分布到集群中的 比如 textfile flatman map worker 管...

Spark原理總結

spark是uc berkeley amp lab所開源的類hadoop mapreduce的通用分布式平行計算框架。spark擁有hadoop mapreduce所具有的優點,但和mapreduce 的最大不同之處在於spark是 基於記憶體的迭代式計算 spark的job處理的中間輸出結果可以儲...

spark 執行原理

sparkcontext 乙個執行緒只有乙個 spark的job都是jvm的程序 在spark 2.0之前,sparkcontext是所有spark任務的入口,無論spark集群有多少個節點做並行處理,每個程式只可以有唯一的sparkcontext,它可以被sparkconf物件初始化 spark ...