Spark系列-核心概念
一. Spark核心概念html
- Master,也就是架構圖中的Cluster Manager。Spark的Master和Workder節點分別Hadoop的NameNode和DataNode類似,是一種主從結構。Master是集羣的領導者,負責協調和管理集羣內的全部資源(接收調度和向WorkerNode發送指令)。從大類上來分Master分爲local和cluster兩大類
-
- local:也就是本地模式,全部計算都在一臺服務器上完成,一般用於本地開發調試。思惟導圖中
- local:表示啓動一個線程,全部的計算都在這個線程中完成
- local[k]:啓動k個worker線程
- local[*]:按照當前服務器的cpu核數來啓動
- cluster:也就是集羣模式,由多臺服務器並行執行。
- standalone:spark自帶的資源管理器
- mesos:由mesos來管理
- yarn:一般和MapReduce做業同樣,資源共享,因此使用的最多。(yarn cluster:全部調度資源都在集羣上運行,yarn client:出了spark driver和master進程,其他都在集羣上)
- Worker,也就是WorkderNode,負責執行Master所發送的指令,來具體分配資源並執行任務
- Driver:一個Spark job運行前會啓動一個Driver進程,也就是做業的主進程,負責解析和生成各個Stage,並調度Task到Executor上
- Executer:負責執行做業。如圖中因此,Executer是分步在各個Worker Node上,接收來自Driver的命令並加載Task
- SparkContext:程序運行調度的核心,高層調度去DAGScheduler劃分程序的每一個階段,底層調度器TaskScheduler劃分每一個階段具體任務
- DAGScheduler:負責高層調度,劃分stage並生產DAG有向無環圖
- TaskScheduler:負責具體stage內部的底層調度,具體task的調度和容錯
- Job:每次Action都會觸發一次Job,一個Job可能包含一個或多個stage
- Stage:用來計算中間結果的Tasksets。分爲ShuffleMapStage和ResultStage,出了最後一個Stage是ResultStage外,其餘都是ShuffleMapStage。ShuffleMapStage會產生中間結果,是以文件的方式保存在集羣當中,以便可以在不一樣stage種重用
- Task:任務執行的工做單位,每一個Task會被髮送到一個節點上,每一個Task對應RDD的一個partition.
- RDD:是以partition分片的不可變,Lazy級別數據集合
- 算子
- Transformation:由DAGScheduler劃分到pipeline中,是Lazy級別的,不會觸發任務的執行
- Action:會觸發Job來執行pipeline中的運算
歡迎關注本站公眾號,獲取更多信息