Spark集羣角色

1.Master和Worker

Spark特有資源調度系統的Leader。掌管着整個集羣的資源信息,類似於Yarn框架中的ResourceManager,主要功能:
(1)監聽Worker,看Worker是否正常工作;
(2)Master對Worker、Application等的管理(接收worker的註冊並管理所有的worker,接收client提交的application,(FIFO)調度等待的application並向worker提交)。
2)Worker
Spark特有資源調度系統的Slave,有多個。每個Slave掌管着所在節點的資源信息,類似於Yarn框架中的NodeManager,主要功能:
(1)通過RegisterWorker註冊到Master;
(2)定時發送心跳給Master;
(3)根據master發送的application配置進程環境,並啓動StandaloneExecutorBackend(執行Task所需的臨時進程)

2.Driver和Executor

1)Driver(驅動器)
Spark的驅動器是執行開發程序中的main方法的進程。它負責開發人員編寫的用來創建SparkContext、創建RDD,以及進行RDD的轉化操作和行動操作代碼的執行。如果你是用spark shell,那麼當你啓動Spark shell的時候,系統後臺自啓了一個Spark驅動器程序,就是在Spark shell中預加載的一個叫作 sc的SparkContext對象。如果驅動器程序終止,那麼Spark應用也就結束了。主要負責:
(1)把用戶程序轉爲任務
(2)跟蹤Executor的運行狀況
(3)爲執行器節點調度任務
(4)UI展示應用運行狀況
2)Executor(執行器)
Spark Executor是一個工作進程,負責在 Spark 作業中運行任務,任務間相互獨立。Spark 應用啓動時,Executor節點被同時啓動,並且始終伴隨着整個 Spark 應用的生命週期而存在。如果有Executor節點發生了故障或崩潰,Spark 應用也可以繼續執行,會將出錯節點上的任務調度到其他Executor節點上繼續運行。主要負責:
(1)負責運行組成 Spark 應用的任務,並將狀態信息返回給驅動器進程;
(2)通過自身的塊管理器(Block Manager)爲用戶程序中要求緩存的RDD提供內存式存儲。RDD是直接緩存在Executor進程內的,因此任務可以在運行時充分利用緩存數據加速運算。

因此,Master和Worker是Spark的守護進程,即Spark在特定模式下正常運行所必須的進程。Driver和Executor是臨時進程,當有具體任務提交到Spark集羣纔會開啓的進程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章