1-SparkSubmit源碼閱讀

本文基于spark2.4.7, 梳理SparkSubmit.scala的提交應(yīng)用的核心流程,流程如下圖1所示,具體請閱讀源碼。
先從一段腳本說起,下面是一段提交spark應(yīng)用的jar包的腳本

!/bin/bash

echo '數(shù)據(jù)分析模塊 啟動------------'
echo "PID of this script: $$"
redisHost=192.168.1.212
redisPort=6379
redisPass=xxx
redisIndex=8
intervalTime=5
brokers=192.168.1.212:9092
spark-submit --class com.my.handler.XXXDataHandler
--master spark://XMaster:7077
--deploy-mode client
--driver-memory 512m
--executor-memory 1024m
--total-executor-cores 1
--executor-cores 1
/home/hadoop/spark/mms/mms-analyze-2.0-SNAPSHOT-jar-with-dependencies.jar
redisHostredisPort redisPassredisIndex intervalTimebrokers

這個腳本調(diào)用的就是/bin目錄下的spark-submit腳本

查看spark-submit文件里面有一段核心的代碼,說明SparkSubmit 是腳本提交到入口,對應(yīng)spark源碼core包下的SparkSubmit .scala文件
exec "{SPARK_HOME}"/bin/spark-class org.apache.spark.deploy.SparkSubmit "@"

于是閱讀SparkSubmit .scala文件,SparkSubmit 主要可以提交4種動作,分別是
SUBMIT 提交應(yīng)用
KILL 殺死進(jìn)程
REQUEST_STATUS 請求狀態(tài)
PRINT_VERSION 答應(yīng)版本

核心代碼流程圖如下圖所示


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

相關(guān)閱讀更多精彩內(nèi)容

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