1. 程式人生 > >spark程式碼提交流程(Standalone)

spark程式碼提交流程(Standalone)

spark-submit提交程式碼 執行new SparkContext(),在SparkContext裡構造DAGScheduler和TaskScheduler. TaskScheduler會通過後臺的一個程序,連線Master,向Master註冊Application。 Master接收到Application請求後,會使用相應的資源排程演算法,在Worker上為這個Application啟動多個Executer。 Executor啟動後,會自己反向註冊到TaskScheduler中。 所有Executor都註冊到Driver上之後,SparkContext結束初始化,接下來往下執行我們自己的程式碼。 每執行到一個Action,就會建立一個Job。Job會提交給DAGScheduler。 DAGScheduler會將Job劃分為多個stage,然後每個stage建立一個TaskSet. TaskScheduler會把每一個TaskSet裡的Task,提交到Executor上執行。 Executor上有執行緒池,每接收到一個Task,就用TaskRunner封裝,然後從執行緒池裡取出一個執行緒執行這個task。 (TaskRunner將我們編寫的程式碼,拷貝,反序列化,執行Task) (每個Task執行RDD裡的一個partition)