Application:web
Application是建立了SparkContext實例對象的spark用戶,包含了Driver程序:shell
Spark-shell是一個應用程序,由於spark-shell在啓動的時候建立了一個SparkContext對象,其名稱爲sc:多線程
Job:併發
和Spark的action相對應,每個action例如count、saveAsTextFile等都會對應一個job實例,該job實例包含多任務的並行計算。框架
Driver Program:函數
運行main函數而且建立SparkContext實例的程序oop
Cluster Manager:spa
集羣資源的管理外部服務,在spark上如今有standalone、yarn、mesos等三種集羣資源管理器,spark自帶的standalone模式可以知足大部分的spark計算環境對集羣資源管理的需求,基本上只有在集羣中運行多套計算框架的時候才考慮yarn和mesos線程
Worker Node:orm
集羣中能夠運行應用代碼的工做節點,至關於Hadoop的slave節點
Executor:
在一個Worker Node上爲應用啓動的工做進程,在進程中賦值任務的運行,而且負責將數據存放在內存或磁盤上,必須注意的是,每一個應用在一個Worker Node上只會有一個Executor,在Executor內部經過多線程的方式併發處理應用的任務。
Task:
被Driver送到Executor上的工做單元,一般狀況下一個task會處理一個split的數據,每一個split通常就是一個Block塊的大小:
State:
一個job會被拆分紅不少任務,每一組任務被稱爲state,這個MapReduce的map和reduce任務很像,劃分state的依據在於:state開始通常是因爲讀取外部數據或者shuffle數據、一個state的結束通常是因爲發生shuffle(例如reduceByKey操做)或者整個job結束時,例如要把數據放到hdfs等存儲系統上