Spark架構原理

2021-09-19 22:38:24 字數 1137 閱讀 9461

本文總結了spark架構原理,其中主要包括五個元件:driver、master、worker、executor和task,簡要概括了每個元件是幹啥的,並總結提交spark程式之後,這五個元件執行的詳細步驟。

為了直觀,就把流程圖放在最前面了

driver是乙個程序,我們編寫的spark程式執行在driver上,由dirver程序執行,driver是作業的主程序,具有main函式,是程式的入口點,driver程序啟動後,向master傳送請求,進行註冊,申請資源,在後面的executor啟動後,會向dirver進行反註冊,dirver註冊了executor後,正式執行spark程式,讀取資料源,建立rdd或dataframe,生成stage,提交task到executor

master是個程序,主要負責資源的排程和分配,集群的監控等。

worke是個程序,主要負責兩個,乙個是用自己的記憶體儲存rdd的某個或某些partition,另乙個是啟動其他程序和執行緒,對rdd上的partition進行處理和計算。

executor是個程序,乙個executor執行多個task,多個executor可以並行執行,可以通過–num-executors來指定executor的數量,但是經過我的測試,executor最大為集群可用的cpu核數減1。

task是個執行緒,具體的spark任務是在task上執行的,某些並行的運算元,有多少個分割槽就有多少個task,但是有些運算元像take這樣的只有乙個task。

1、driver程序啟動之後,會進行一些初始化的操作,在這個過程中,會傳送請求到master

2、master,接收到driver的註冊之後,傳送請求給worker,進行資源的排程和分配,也就是executor的分配

3、worker接收到master的請求,啟動executor

4、executor啟動之後,會向driver進行反註冊

5、driver註冊了executor之後,正式開始執行spark程式,首先讀取資料源,建立rdd

6、hdfs檔案被讀取到多個worker節點,形成rdd

7、在worker上生成rdd之後,driver會根據我們對rdd定義的操作,提交相應數量的task到executor上

Spark的架構原理

driver driver是spark集群的節點之一,我們編寫的spark程式就在driver上,由driver程序執行。master master是個程序,主要負責資源的排程和分配,還有集群的監控,等等職責。worker worker是個程序,主要負責兩個方面,乙個是用自己的記憶體儲存rdd的某個...

Spark架構及原理

原則一 避免建立重複的rdd 原則二 盡可能用同乙個rdd 原則三 對多次使用的rdd進行持久化 如何選擇一種最合適的持久化策略 原則四 盡量避免使用shuffle類運算元 原則五 使用map side預聚合的shuffle操作 groupbykey 和 reducebykey 原則六 使用高效能的...

spark學習12(spark架構原理)

spark採用的是主從式的架構,主節點叫master,從節點是worker 我們編寫的spark就在driver上,由driver程序執行。driver是spark集群的節點之一,或你提交spark程式的機器 master是集群的資源管理者和排程者,類似yarn裡面的resourcemanger,還...