### 整體架構概述
Spark與Hadoop MapReduce的結構類似,Spark也采用Master-Worker結構。如果一個Spark集群由4個節點組成,即1個Master節點和3個Worker節點,那么在部署Standalone版本后,Spark部署的系統架構圖如圖2.1所示。簡單來說,Master節點負責管理應用和任務,Worker節點負責執行任務。
### 具體功能
我們接下來先介紹Master節點和Worker節點的具體功能,然后介紹一些Spark系統中的基本概念,以及一些實現細節。
1.Master節點和Worker節點的職責如下所述。
Master節點上常駐Master進程。該進程負責管理全部的Worker節點,如將Spark任務分配給Worker節點,收集Worker節點上任務的運行信息,監控Worker節點的存活狀態等。
Worker節點上常駐Worker進程。該進程除了與Master節點通信,還負責管理Spark任務的執行,如啟動Executor來執行具體的Spark任務,監控任務運行狀態等。
2.執行順訊
啟動Spark集群時,Master節點上會啟動Master進程,每個Worker節點上會啟動Worker進程。啟動Spark集群后,接下來可以提交Spark應用到集群中執行,Master節點接收到應用后首先會通知Worker節點啟動Executor,然后分配Spark計算任務(task)到Executor上執行,Executor接收到task后,為每個task啟動1個線程來執行。
3.這里有幾個概念需要解釋一下。
Spark application,即Sp