spark-shell啟動集群


使用spark-shell  啟動spark集群時的流程簡析:

spark-shell->spark-submit->spark-class 

在sprk-class中根據條件會從不同的入口啟動application。

 

從SparkSubmitDriverBootstrapper啟動時 conf/spark-defaults.conf文件必須存在,通過修改SPARK_PRINT_LAUNCH_COMMAND的值可以查看詳細的Spark Command

SparkSubmitDriverBootstrapper 主要是為了避免在腳本中處理復雜的的properties文件 。其中進行了運行環境所需的參數的配置,利用這些參數生成了command,同時開啟進程 process執行命令,對於process的輸入輸出進行了重定向。通過配置SPARK_PRINT_LAUNCH_COMMAND環境變量可以查看生成的command。

 

SparkSubmitArguments用於解析和封裝從spark-submit腳本獲得參數

其中:
    getPropertiesFromFile(file: File)用於屬性的配置文件
    parseOpts 解析參數
    mergeSparkProperties 根據讀取的properties對未賦值的進行賦值
    checkRequiredArguments 確保必要的字段存在

 

 SparkSubmit是啟動一個application的入口 主要有createLaunchEnv和launch兩個方法,在launch中會通過反射調用mianclass(eg. 上如中的org.apache.spark.repl.Main),在SparkSubmit中會根據不同的clusterManger和deployMode選擇不同的MainClass。

 

 

在org.apache.spark.repl.Main中的Main方法調用process生成一個新的 new Scala compiler,在這個過程中會調用SprkILoopInit.scala中的initializeSpark方法用於最終生成sc,從而在REPL中使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM