Spark執行機制和提交過程

2022-05-09 03:39:09 字數 1111 閱讀 1358

1.依賴:寬依賴和窄依賴,rdd具有分割槽

寬依賴:多個子rdd的分割槽依賴同乙個父rdd的分割槽,類似reducebykey;在父rdd的角度,理解為超生;

窄依賴:父rdd的每個分割槽最多被乙個子rdd使用,類似map();在父rdd的角度,理解為獨生;

2.依賴和分割槽

分割槽:rdd分割槽指分布式計算

依賴:劃分階段stage

3.wordcount說明:

1.每個stage階段中rdd的分割槽數決定task任務數,總任務數所有stage的任務數的總和;

2.劃分階段按rdd依賴關係進行區分,可參考rdd的todebugstring

如:val rdd = sc.textfile("file:///d:/測試資料/spark_wordcount.txt")

val rdd1 = rdd.flatmap(x=> x.split(" "))

val rdd2 = rdd1.map(x=>(x,1))

val rdd3 = rdd2.reducebykey((x,y)=>x+y)

println(rdd3.todebugstring);

(2) shuffledrdd[4] at reducebykey at wordcount.scala:11

| file:///d:/測試資料/spark_wordcount.txt hadooprdd[0] at textfile at wordcount.scala:8

說明:相同tree節點的等級為乙個stage

3.rdd的分割槽必須清晰。

1.構建sc物件,[rdd建立]-->[rdd轉換]-->[rdd轉換]-->......-->rdd行動==>job

說明:構建dag,將dag傳送給dagscheduler

2.dagscheduler(dag排程器)作用:

通過血統(rdd的依賴關係:寬和窄)劃分stage,並將stage組合成taskset(任務數)傳送給相對應集群伺服器的taskscheduler

3.taskschedule(任務排程器)作用:

將taskset轉化為task,並根據task排程相應worker的executor

4.exextor執行器:

執行task!!!

Spark執行機制及提交過程

依賴 寬依賴和窄依賴,rdd具有分割槽 寬依賴 多個子rdd的分割槽依賴同乙個父rdd的分割槽,類似reducebykey 在父rdd的角度,理解為超生 窄依賴 父rdd的每個分割槽最多被乙個子rdd使用,類似map 在父rdd的角度,理解為獨生 依賴和分割槽 分割槽 rdd分割槽指分布式計算 依賴...

spark執行機制

client模式提交 driver程序執行在客戶端執行流程 使用者啟動客戶端,之後客戶端執行使用者程式,啟動driver程序。在driver中啟動或例項化dagscheduler等元件。客戶端的driver向master註冊。worker向master註冊,master命令worker啟動exeuc...

spark提交過程分析(standalone模式)

2.1.所有executor都反向註冊到driver上之後,driver結束sparkcontext初始化,會繼續執行我們編寫的 2.2.每執行乙個action就會建立乙個job,job會提交給dagscheduler 2.3 dagscheduler會採用自己的stage劃分演算法將job劃分為多...