1. 程式人生 > >Spark 執行架構

Spark 執行架構

一、構建Spark Application執行環境

在Driver Program中新建SparkContext(包含SparkContext的程式稱為Driver Program);

Spark Application 執行的表現方式為:在叢集上執行著一組獨立的excutor程序、這些程序由SparkContext來協調

二、SparkContext向資源管理器申請Excutor資源,並啟動StandaloneExcutorBackend,excutor向SparkContext申請task

叢集通過SparkContext連線到不同的cluster manager(standalone, yarn, messo),cluster manager為執行應用的Excutor分配資源;一旦連線建立之後,Spark`為每個Application就會獲得各個節點上的Excutor(程序);每個Application都有自己獨立的excutor程序;Excutor才是真正執行在WorkNode上的工作程序,它們為應用來及孫或者儲存資料。

三、SparkContext獲取到executor之後,Application的應用程式碼將會被髮送到各個executor;

四、SparkContext構建RDDDAG圖,將RDD DAG圖分解程Stage DAG圖,將Stage提交給TaskScheduler,最後由TaskScheduler將Task傳送給Executor執行;

五、Task在Executor上執行,執行完畢後釋放所有資源。