1.RDD。彈性分佈式數據集,是Spark最核心的數據結構。有分區機制,因此能夠分佈式進行處理。有容錯機制,經過RDD之間的依賴關係來恢復數據。數據結構
2.依賴關係。RDD的依賴關係是經過各類Transformation(變換)來獲得的。父RDD和子RDD之間的依賴關係分兩種:①窄依賴 ②寬依賴框架
①針對窄依賴:父RDD的分區和子RDD的分區關係是:一對一分佈式
窄依賴不會發生Shuffle,執行效率高,spark框架底層會針對多個連續的窄依賴執行流水線優化,從而提升性能。例如 map flatMap等方法都是窄依賴方法性能
②針對寬依賴:父RDD的分區和子RDD的分區關係是:一對多優化
寬依賴會產生shuffle,會產生磁盤讀寫,沒法優化。spa
3.DAG。有向無環圖,當一整條RDD的依賴關係造成以後,就造成了一個DAG。通常來講,一個DAG,最後都至少會觸發一個Action操做,觸發執行。一個Action對應一個Job任務。orm
4.Stage。一個DAG會根據RDD之間的依賴關係進行Stage劃分,流程是:以Action爲基準,向前回溯,遇到寬依賴,就造成一個Stage。遇到窄依賴,則執行流水線優化(將多個連續的窄依賴放到一塊兒執行)spark
5.task。任務。一個分區對應一個task。能夠這樣理解:一個Stage是一組Task的集合io
6.RDD的Transformation(變換)操做:懶執行,並不會當即執行form
7.RDD的Action(執行)操做:觸發真正的執行