Spark原始碼分析之AM端執行流程(Driver)

2021-10-04 19:14:07 字數 1190 閱讀 3264

spark-submit --master yarn \

--deploy-mode cluster \

--class org.apache.spark.examples.sparkpi \

/usr/local/spark-2.4.3-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.4.3.jar 100000

由之前文章可知,最終是由sparksubmit類向yarn集群提交任務,首先會把任務依賴的檔案上傳hdfs,然後生成yarn提交上下文引數,通過rpc方式向yarn的resource manager提交任務,其中提交上下文引數如下:

提交給hdfs的檔案如下圖

上圖給出檔案供參考(由於jar檔案過多過大,刪除了解壓到nm-local-dir/usercache/root/filecache/13/__spark_libs__3004195479466524435.zip目錄中的所有jar包)。

...// in cluster mode, used to tell the am when the user's sparkcontext has been initialized.

private val sparkcontextpromise = promise[sparkcontext]()

private def sparkcontextinitialized(sc: sparkcontext) =

} ...

val mainmethod = userclassloader.loadclass(args.userclass)

.getmethod("main", classof[array[string]])

val userthread = new thread else

} catch finally }}

userthread.setcontextclassloader(userclassloader)

userthread.setname("driver")

userthread.start()

userthread

} private def rundriver(): unit =

Spark 原始碼分析之spark submit

在客戶端執行指令碼sbin spark submit的時候,通過cat命令檢視原始碼可以看出,實際上在原始碼中將會執行bin spark class org.apache.spark.deploy.sparksubmit 在idea匯入的spark core的原始碼進行分析。首先spark會把初始化...

Spark 原始碼分析之SparkContext

saprkcontext非常重要,是spark提交任務到集群的入口 sparkcontext中沒有main方法,在sparkcontext主構造器中,主要做一下四件事情 1.呼叫createsparkenv 建立sparkenv,sparkenv中能夠得到actorsystem物件,用於建立acto...

Spark原始碼分析 Spark整體架構

術語 描述使用者編寫的程式。driver端的sparkcontext sparkconf和執行在executors上使用者編寫的業務邏輯 即map reduce reducebykey等 driver 執行使用者編寫應用程式的main 方法並建立sparkcontext worker 具體執行應用程...