在客戶端執行指令碼sbin/spark-submit的時候,通過cat命令檢視原始碼可以看出,實際上在原始碼中將會執行bin/spark-class org.apache.spark.deploy.sparksubmit 。
在idea匯入的spark-core的原始碼進行分析。
首先spark會把初始化的引數使用sparksubmitarguments進行封裝,之後對sparksubmitaction型別進行模式匹配,一共有三種:1.submit 2. kill 3. request_status。
其中,submit就是匹配到用於怎麼提交任務的方法submit(),提交任務都要先進行反序列化,所以submit()方法會先獲取到反向**,之後開啟執行緒,解析到入口類的main方法並執行。
runmain()中,通過傳入的遠端**物件,拿到入口類mainclass,獲取main方法,並通過invoke()執行
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 具體執行應用程...
spark原始碼之TaskScheduler解讀
1 spark任務的真正的執行時由action運算元進行乙個觸發,最終呼叫sc.runjob方法,在driver端會初始化2個重要的組建dagscheduler和taskscheduler,a taskscheduler的主要職責 a.1負責將dagscheduler傳送過來的的taskset放入到...