名稱 | 概念詳解 |
Application/App | 就是程序員寫的Spark代碼,包括運行在Driver端的代碼和運行在Executor端的代碼 |
Driver | 程序中編寫的main方法和創建SparkContext的代碼 |
SparkContext | 表示Spark運行環境,用來與ClusterManager進行通信的對象 |
ClusterManager | 資源管理器,對於Standalone模式就是Master,對於Yarn模式就ResourceManager |
Worker | Spark集羣中的從節點,是真正幹活的 (得去啓動Executor進程去執行任務) |
Executor | 運行在Worker節點的JVM進程 (一個Worker可以運行多個Executor,因爲可以提交多個應用) |
RDD | 彈性分佈式數據集,可以理解爲分佈式集合,分佈的各個Worker上的稱做分區 |
ShuffleDependency | 寬依賴,父RDD的一個分區會被子RDD的多個分區所依賴 |
NarrowDependency | 窄依賴,父RDD的一個分區只會被子RDD的一個分區所依賴 |
DAG | 有向無環圖,指的是RDD的轉換流程 (從RDD被創建開始,到Action結束就會形成一個DAG,所以一個Spark應用 可能會有1~N個DAG,取決於觸發了多少次Action) |
Job | 作業,按照DAG中的各個Stage階段進行執行就稱作一個Job作業 |
Stage | 階段,是DAGScheduler根據Shuffle/寬依賴對DAG進行的階段劃分,劃分好的Stage中包含多個Task組成的TaskSet |
TaskSet | 一個Stage中的多個Task組成的集合 |
Task | RDD的一個分區在計算的時候就是一個Task |