Spark原始碼走讀(一) —— Spark應用提交流程
阿新 • • 發佈:2018-12-25
Spark應用是使用spark-submit指令碼提交,指令碼內容如下,可知該指令碼把SparkSubmit類作為引數傳給spark-class指令碼
略去spark-class指令碼上面的載入配置等步驟,發現這裡使用launcher.Main啟動SparkSubmit的執行從而啟動應用。
- SparkSubmit中的main函式,主要是解析引數,根據引數執行不同行為。
- submit函式主要分兩步:
- 1、為提交的應用準備環境
- 2、用這個環境呼叫child main class的main方法
- PrepareSubmitEnvironment方法就是為提交的應用準備環境,其中會設定cluster manger,有三種YARN,MESOS和STANDALONE;部署模式,分client和cluster;等。
- 可以看出執行了doRunMain –> runMain方法。如果deploymode是client或者clustermanager是yarn且deploymode是cluster,則這裡的childMainClass就是所提交應用的類名。下面是runMain方法中部分程式碼:
- 可知通過反射呼叫了所提交應用的類中的main方法,之後便是實際的程式執行,涉及到job排程了。