1.Driver Programshell
用戶編寫的Spark程序稱爲Driver Program。每一個Driver程序包含一個表明集羣環境的SparkContext對象,程序的執行從Driver程序開始,全部操做執行結束後回到Driver程序中,在Driver程序中結束。若是你是用spark shell,那麼當你啓動 Spark shell的時候,系統後臺自啓了一個 Spark 驅動器程序,就是在Spark shell 中預加載的一個叫做 sc 的 SparkContext 對象。若是驅動器程序終止,那麼Spark 應用也就結束了。spa
2. SparkContext對象orm
每一個Driver Program裏都有一個SparkContext對象,職責以下:對象
1)SparkContext對象聯繫 cluster manager(集羣管理器),讓 cluster manager 爲Worker Node分配CPU、內存等資源。此外, cluster manager會在 Worker Node 上啓動一個執行器(專屬於本驅動程序)。blog
2)和Executor進程交互,負責Task(任務)的調度分配。進程
3. cluster manager 集羣管理器(Master)內存
它對應的是Master進程。集羣管理器負責集羣的資源調度,好比爲Worker Node分配CPU、內存等資源。並實時監控Worker的資源使用狀況。一個Worker Node默認狀況下分配一個Executor(進程)。 資源
從圖中能夠看到sc和Executor之間畫了一根線條,這代表:程序運行時,sc是直接與Executor進行交互的。spark
因此,cluster manager 只是負責資源的管理調度,而任務的分配和結果處理它無論。io
4.Worker Node
Worker節點。集羣上的計算節點,對應一臺物理機器
5.Worker進程
它對應Worder進程,用於和Master進程交互,向Master註冊和彙報自身節點的資源使用狀況,並管理和啓動Executor進程
6.Executor
負責運行Task計算任務,並將計算結果回傳到Driver中。
7.Task
在執行器上執行的最小單元。好比RDD Transformation操做時對RDD內每一個分區的計算都會對應一個Task。