大數據之謎Spark基礎篇,Spark運行架構原理詳解

溫馨提示

本公眾號專註分享大數據技術Spark、Hadoop等,如果你是初學者、或者是自學者,這裡都是可以提供免費資料,也可以加小編微信號:wusc35,小編可以給你學習上、工作上一些建議以及可以給你提供免費的學習資料!學習技術更重要的是在於學習交流!等你來...

註:本公眾號純屬個人公益號!免費分享所有學習資料!希望朋友多多支持!多多關注!

本節主要來理解以下五個組件,是怎麼相互連接,並配合起來實現我們的Spark應用程序的運行架構原理。

1、Driver

2、Master

3、Worker

4、Executor

5、Task

Driver 是一個進程,我們提交編寫好的Spark程序就是在Driver上,由Driver進程執行,充當Driver的可能是Spark集群的某個節點、也有可能是你提交Spark程序的機器,這個需要取決於你的Spark運行模式,他是有不一樣的。也就是說我們在哪台機器提交運行程序,Spark將會使用它充當Driver角色。

在某些公司正式集群是有專門的提交程序運行的機器,有的也是直接拿集群的Master節點來充當Driver運行程序,也有選舉集群某個節點來充當Driver節點。

Master,它也是一個進程,我們可以在搭建好的集群通過最簡單的命令jps來查看我們已經運行了哪些進程。Master主要是負責資源的調度和分配,還有集群的監控等職責。

Worker,也是一個進程,主要是負責有,一是用自己的內存,存儲RDD的某些partition數據;另一個是啟動其他進程和線程,來對RDD上的partition進行運行的處理和計算

Executor,也是一個進程,在一個Executor進程裡面會有多個task線程。這裡的Executor和task就主要負責執行對RDD的partition進行並行的計算,也就是執行我們隊RDD運算元,如map、flatMap、reduceByKey等。

Task,是一個線程,主要是負責實際的執行運算元任務。

每個組件進行簡單介紹後,那這些組件是如何相互調用配合來完成運行一個Spark應用程序呢,結合下圖進行直觀講解。

這裡我們通過搭建最小測試集群來分析Spark運行架構原理,這裡我們有3個節點,1個master、2個worker節點。機器的選舉主從節點,是可以在搭建環境的時候,配置文件裡面指定機器為Master,還是Worter節點。

A,每當Driver進程被啟動之後,都會做哪些事情來初始化操作呢?首先它將發送請求到Master上,進行Spark應用程序的註冊,也就是我們要讓Master知道,現在有一個新的Spark應用程序要運行了。

B,那Master在接收到Spark應用程序的註冊申請之後,會發送給Worker,讓其進行資源的調度和分配。這也說明資源分配是由executor來分配管理。

C,Worter接收Master的請求之後,會為Spark應用啟動Executor,來給分配資源。

D,Executor啟動分配資源好後,就會向Driver進行反註冊,這也Driver就會知道哪些Executor是為他進行服務的了。

E,當Driver得到註冊了Executor之後,就可以開啟正式執行我們的spark應用程序了。首先第一步,就是創建初始RDD,讀取數據源,再執行之後的一系列運算元。HDFS文件內容被讀取到多個worker節點上,形成內存中的分散式數據集,也就是初始RDD 。

F,這時候,Driver就會根據Job任務中的運算元形成對應的task,最後提交給Executor,來分配task進行計算的線程。

G,這時的task就會去調用對應自己任務的數據(也就是第一步初始化RDD的partition)來計算,並且task會對調用過來的RDD的partition數據執行指定的運算元操作,形成新的RDD的partition,這時一個大的循環就結束了。

後面新的RDD的partition數據又通過Driver形成新一批task提交給Executor執行,循環這個操作,直到所有運算元執行結束。

這時候我們回顧前幾節的原理分析和WordCount程序運行原理,結合到本節的Spark運行原理中來就會感覺更進一步的理解Spark整體架構了。

希望對你我他有用

有不足之處請多多指教

歡迎留言評論!!!

歡迎關注微信公眾號【大數據之謎】

也可以加小編微信交流學習:wusc35

原創聲明:轉載註明出處!


推薦閱讀:

大數據入門書籍有哪些(二)
大數據必備知識:數據的分類方式
從頭學習大數據培訓課程 數據倉儲工具 hive(四)hive 的 select、union、SQL 依賴並發執行
[英語句翻6-10]讓英語學習不再痛苦
Hive0.13到Hive2.1跨版本升級全姿勢

TAG:Spark | 大數據處理 |