spark原始碼之任務提交過程

weixin_34208283發表於2018-10-15

感謝逃出你的肖生克文章指導。

11265075-d0cff4ceccfefd4f.png

一般在命令列我們會以spark-submit來提交自己的程式碼,並會以這個形式提交

./bin/spark-submit \

  --class <main-class> \

  --master <master-url> \

  --deploy-mode <deploy-mode> \

  --conf <key>=<value> \

  ... # other options

  <application-jar> \

  [application-arguments]

程式碼提交到spark後大概會有三個流程。

1.找到或是設定spark_home變數

2.設定相關相關的一些環境變數,並把引數解析

3.執行我們提交的程式


具體例項參見
https://blog.csdn.net/do_yourself_go_on/article/details/75005204


對部分進行註釋補充:

build_command() {"$RUNNER"-Xmx128m -cp"  $LAUNCH_CLASSPATH" org.apache.spark.launcher.Main   "$@"   printf"%d\0"$?}

該操作是spark-class中將引數解析的操作,增加$LAUNCH_CLASSPATH" 是為了給Main程式驗證是否是該操作,解析時會把引數都列印到命令端,並把引數放入陣列返回。

相關文章