1-SparkSubmit源碼閱讀

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

!/bin/bash

echo '數據分析模塊 啟動------------'
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

這個腳本調用的就是/bin目錄下的spark-submit腳本

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

于是閱讀SparkSubmit .scala文件,SparkSubmit 主要可以提交4種動作,分別是
SUBMIT 提交應用
KILL 殺死進程
REQUEST_STATUS 請求狀態
PRINT_VERSION 答應版本

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


圖1.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容