Spark 框架有兩個核心組件:Driver
和Executor
-
Driver:驅動整個應用運行起來的程序,也叫Driver類
- 將用戶程序轉化為作業(job)
- 在 Executor 之間調度任務(task)
- 跟蹤 Executor 的執行情況
- 通過 UI 展示查詢運行情況
-
Executor:
Spark Executor 是集群中工作節點(Worker)中的一個 JVM 進程,負責在 Spark 作業中運行具體任務(Task),任務彼此之間相互獨立。Spark 應用啟動時,Executor 節點被同時啟動,並且始終伴隨着整個 Spark 應用的生命周期而存在。如果有 Executor 節點發生了故障或崩潰,Spark 應用也可以繼續執行,會將出錯節點上的任務調度到其他 Executor 節點上繼續運行。
- 負責運行組成 Spark 應用的任務,並將結果返回給驅動器進程
- 它們通過自身的塊管理器(Block Manager)為用戶程序中要求緩存的 RDD 提供內存式存儲。RDD 是直接緩存在 Executor 進程內的,因此任務可以在運行時充分利用緩存數據加速運算。