Application:基于Spark的應用程式,包含了driver程式和 叢集上的executor
DriverProgram:運作main函數并且建立SparkContext的程式
ClusterManager:在叢集上擷取資源的外部服務(例如 standalone,Mesos,Yarn )
WorkerNode:叢集中任何可以運作應用用代碼的節點
Executor:是在一個workernode上為某應用用啟動的一個程序,該程序負責運作任務,并且負責将資料存在記憶體或者磁盤上。每個應用用都有各自自獨立的executors
Task:被送到某個executor上的執行單元
在Driver端定義:sc.longAccumulator
在算子内部進行累加
在Driver端彙總
累加器支援在所有不同節點之間進行累加計算
在Driver端廣播:sc.broadcast()
在算子内部取用,不能進行修改
廣播到每個Executor中
用完記得“銷毀”
将資料直接封裝到Executor中
如果直接将資料封裝task中,會産生很多副本,增加網絡傳輸的資料量,降低效率,因為task的數量遠大于Executor的數量