掌握Spark核心是精通Spark的關鍵,也是駕馭Spark的精髓所在。
基于Spark核心,Spark建構起了一體化多元化的大資料處理流水線,在一個技術堆棧中即可以同時完成批處理、實時流處理、互動式查詢、機器學習、圖計算以及這些子架構之間資料和RDD算子的無縫共享與互操作。
可以說,Spark核心是每個想徹底掌握Spark的人員的必修課,通過對核心的探索,我們對整個Spark的運作機制會了如指掌,這對Spark的大規模應用、性能優化、系統自定義開發Spark系統都是至關重要的。
一、Spark核心核心術語解析
Application:
Application是建立了SparkContext執行個體對象的Spark使用者,包含了Driver程式
Spark-shell是一個應用程式,因為spark-shell在啟動的時候建立了SparkContext對象,其名稱為sc
Job:
和Spark的action相對應,每一個action例如count、savaAsTextFile等都會對應一個Job執行個體,該Job執行個體包含多任務的并行計算。
Driver Program:
運作main函數并且建立SparkContext執行個體的程式。
Cluster Manager:
叢集資源管理的外部服務,在Spark上現在主要有Standalone、Yarn、Mesos等三種叢集資料總管,Spark自帶的Standalone模式能夠滿足絕大部分純粹的Spark計算環境中對叢集資源管理的需求,基本上隻有在叢集中運作多套計算架構的時候才建議考慮Yarn和Mesos。
Worker Node:
叢集中可以運作應用程式代碼的工作節點,相當于Hadoop的slave節點。
Executor:
在一個Worker Node上為應用啟動的工作程序,在程序中負責任務的運作,并且負責将資料存放在記憶體或磁盤上,必須注意的是,每個應用在一個Worker Node上隻會有一個Executor,在Executor内部通過多線程的方式并發處理應用的任務。
Task:
被Driver送到executor上的工作單元,通常情況下一個task會處理一個split的資料,每個split一般就是一個Block塊的大小
Stage:
一個Job會被拆分成很多任務,每一組任務被成為Stage,這個MapReduce的map和reduce任務很像,劃分Stage的依據在于:Stage開始一般是由于讀取外部資料或者Shuffle資料、一個Stage的結束一般是由于發生Shuffle(例如reduceByKey操作)或者整個Job結束時例如要把資料放到hdfs等存儲系統上
詳細講解請參考以下視訊:
深入spark核心(上).mp4 http://pan.baidu.com/s/1bnB62MN
深入spark核心(上).mp4 http://pan.baidu.com/s/1ntr9qsh
另附上講解PPT:
深入spark核心.pdf http://pan.baidu.com/s/1mgHZGhU
==========================================================
申明:視訊資料已過期,建議不要再下載下傳了。