# Spark架構體系 StandAlone模式是spark自帶的集群運行模式,不依賴其他的資源調度框架,部署起來簡單。 StandAlone模式又分為client模式和cluster模式,本質區別是Driver運行在哪裡,如果Driver運行在SparkSubmit進程中就是Client模式,如果 ...
Spark架構體系
StandAlone模式是spark自帶的集群運行模式,不依賴其他的資源調度框架,部署起來簡單。
StandAlone模式又分為client模式和cluster模式,本質區別是Driver運行在哪裡,如果Driver運行在SparkSubmit進程中就是Client模式,如果Driver運行在集群中就是Cluster模式
standalone client模式
standalone cluster模式
Spark On YARN cluster模式
Spark執行流程簡介
- Job:RDD每一個行動操作都會生成一個或者多個調度階段 調度階段(Stage):每個Job都會根據依賴關係,以Shuffle過程作為劃分,分為Shuffle Map Stage和Result Stage。每個Stage對應一個TaskSet,一個Task中包含多Task,TaskSet的數量與該階段最後一個RDD的分區數相同。
- Task:分發到Executor上的工作任務,是Spark的最小執行單元
- DAGScheduler:DAGScheduler是將DAG根據寬依賴將切分Stage,負責劃分調度階段並Stage轉成TaskSet提交給TaskScheduler
- TaskScheduler:TaskScheduler是將Task調度到Worker下的Exexcutor進程,然後丟入到Executor的線程池的中進行執行
Spark中重要角色
- Master :是一個Java進程,接收Worker的註冊信息和心跳、移除異常超時的Worker、接收客戶端提交的任務、負責資源調度、命令Worker啟動Executor。
- Worker :是一個Java進程,負責管理當前節點的資源管理,向Master註冊並定期發送心跳,負責啟動Executor、並監控Executor的狀態。
- SparkSubmit :是一個Java進程,負責向Master提交任務。
- Driver :是很多類的統稱,可以認為SparkContext就是Driver,client模式Driver運行在SparkSubmit進程中,cluster模式單獨運行在一個進程中,負責將用戶編寫的代碼轉成Tasks,然後調度到Executor中執行,並監控Task的狀態和執行進度。
- Executor :是一個Java進程,負責執行Driver端生成的Task,將Task放入線程中運行。