1. 程式人生 > >spark架構原理之Driver,Master,Worker,Executor,Task執行流程!粗略的見解!

spark架構原理之Driver,Master,Worker,Executor,Task執行流程!粗略的見解!

先從執行的spark程式開始講吧!

1.一般來講我們編寫的Spark程式就是在Driver上由Driver程序執行Driver程序啟動以後就會做一些初始化操作,在這個過程中,就會發送請求到Master上進行Spark應用程式的註冊,其實就是告訴Master,有一個新的Spark程式要跑起來,

2.一般來講學習的叢集為三個,其中第一個成為Master,對,就是第一個節點Master其實就是排程資源和分盤,還有就是叢集的監控,還有一些其他的操作!

Master在接到Spark程式申請以後會發送請求給從節點也就是slave在這裡用worker稱呼,進行資源的分配,

3.第一個worker主要職責是使用自己的記憶體,儲存RDD某些partition,

第二個就是啟動其他程序和執行緒對RDD上面的partition進行處理和計算,

worker在接收到Master的請求後會啟動Executor程序

4.Executor程序裡面包含Task執行緒,這兩貨主要就是負責平行計算的,比如申請的RDD,partition,還有就是一些運算元,比如:map,flatmap,reduce,

5.Executor程序啟動以後會向Driver進行反註冊,這樣Driver就知道哪些Executor是為它服務的了.

6.Driver註冊了Executor程序以後就會開始執行我們提交的Spark應用程式了,第一步就是建立RDD,然後就是讀取資料來源,

7.hdfs的內容可能會被讀取到多個worker節點上面,形成記憶體中 的分散式資料庫,也就是RDD。

8.executor接受到請求以後就會呼叫多個Task節點進行執行。

9.task就會對RDDpartition資料執行指定的運算元操作,形成新的RDD分割槽,