Spark 任務執行經典十八問

2021-10-13 12:44:13 字數 1366 閱讀 3572

1 sparkcontext哪一端生成的?

driver端即sparkcontext

(driver 是乙個統稱,dagschedule ,taskscheduler,blockmanager,shuffemanager,broadcastmanger)

2 dag是在哪一端被構建的?

driver 端

3 rdd是在哪一端生成的?

driver 端 ,rdd 不裝真正要計算的資料,而是記錄了資料的描述資訊

(以後從**讀資料,怎麼計算)

4 呼叫 rdd 的運算元(transformation和action) 是在哪一端呼叫的

driver端

5 rdd在呼叫 transformation 和 action 時需要傳入乙個函式,函式是在哪一端宣告【定義】 和傳入的?

drve端

6 rdd 在呼叫transformation 和 action時傳入函式,請問傳入的函式是在哪一端執行了函式的業務邏輯 ?

executor 中的 task 指定的

7 task 是在哪一端生成的?

driver端 ,task 分為shufflemap 和 resulttask

8 dag 是在哪一端構建好的並被切分成一到多個stage的

driver

9 dag 時哪個類完成的切分stage 的 功能的 ?

dagscheduler

10 dagscheduler 將 切分好的 task 以什麼樣的形式給taskscheduler

taskset

11 分割槽器這個類是在哪一端例項化的

driver端

12 分割槽器中的 getparition 方法在哪一端呼叫的呢?

executor 中的 task

13 廣播變數的 broadcast 方法是在哪一端呼叫的方法進行廣播的

driver 端

14 要廣播的資料應該在哪一端先建立好再廣播呢?

driver 端

15 廣播變數以後能修改嗎?

不能修改

16 廣播變數廣播到executor 後,乙個executor 程序中有幾份廣播變數的資料

乙份全部的廣播的資料

EMR執行spark任務任務失敗重試的問題

在emr上跑spark任務,cluster yarn。在補資料的時候,就是把主函式,根據日期通過for迴圈補充資料,一次性補充了2個月的資料。會不定時的出現重試的現象,例如我從8月份補充到10月份,程式跑到8月15號,進行16號的任務是開始重試,又從8.1號開始執行。追蹤emr監控日誌,會出現類似a...

Spark任務執行原理

首先,先看一幅圖 以上圖中有四個機器節點,driver 和 worker 是啟動在伺服器節點上的程序,這些程序都執行在 jvm 中。上述圖的執行步驟 driver 與集群節點之間有頻繁的通訊。driver 負責任務 tasks 的分發和結果的 任務的排程。如果 task的計算結果非常大就不要 了,會...

Spark任務執行過程解析

spark submit sparksubmit main submit dorunmain runmain 通過反射,建立我們編寫的主類的例項物件,呼叫main方法 開始執行我們的 初始化sparkcontext物件 建立初始rdd 出發action運算元 提交job worker執行任務 任務結...