大資料學習筆記 spark資源排程

2021-08-31 18:34:57 字數 1404 閱讀 9437

val works = new hashset[workinfo]()  //儲存worker節點資源資訊

val waitingdrivers = new arraybuffer[driverinfo]() //儲存driver節點申請的資源資訊

val works = new hashsetworkinfo

works 集合採用hashset陣列儲存work的節點資訊,可以避免存放重複的work節點.(worker節點在異常掛掉以後,在下一次通訊中,會將worker的節點資訊從set集合中刪除,但是如果worker節點掛掉後,在下一次通訊之前又恢復工作,那麼set中的節點資訊是不會被刪除的)

val waitingdrivers = new arraybufferdriverinfo

當客戶端向master為driver申請資源時,會將要申請的driver的相關資訊封裝到master節點的driverinfo這個泛型裡,然後新增到waitingdrivers 裡。master會監控這個waitingdrivers 物件,當waitingdrivers集合中的元素不為空時,說明有客戶端向master申請資源了。此時應該先檢視一下works集合,找到符合要求的worker節點,啟動driver。當driver啟動成功後,會把這個申請資訊從waitingdrivers 物件中移除。

注意點:上面說到master會監控這三個集合,那麼到底是怎麼監控的呢???

master並不是分出來執行緒專門的對這三個集合進行監控,相對而言這樣是比較浪費資源的。master實際上是『監控』這三個集合的改變,當這三個集合中的某乙個集合發生變化時(新增或者刪除),那麼就會呼叫schedule()方法。schedule方法中封裝了上面提到的處理邏輯。

假設我們有5個worker,每個worker節點提供10g記憶體,10個core。

1、spark-submit --master … --executor-cores 2 --executor-memory 2g … 在集群中會啟動多少個executor程序???

252、spark-submit --master … --executor-cores 3 --executor-memory 4g … 在集群中會啟動多少個executor程序???

105、啟動executor個數的公式:*min(min(wm/em,wc/ec)wn,tec/ec)

注:–executor-cores : ec

--executor-memory : em

--total-executor-cores : tec

worker_num : wn

worker_memory : wm

worker_core : wc

spark 資源引數調優

了解完了spark作業執行的基本原理之後,對資源相關的引數就容易理解了。所謂的spark資源引數調優,其實主要就是對spark執行過程中各個使用資源的地方,通過調節各種引數,來優化資源使用的效率,從而提公升spark作業的執行效能。以下引數就是spark中主要的資源引數,每個引數都對應著作業執行原理...

大資料學習筆記(六) Spark的RDD

建立 rdd是spark中的資料集,是唯讀的 rdd可以從集合,普通檔案系統,hdfs檔案系統中建立 scala建立rdd的方法 val lines1 sc.parallelize list aa bb val lines2 sc.textfile file opt spark readme.md ...

Spark調優(一)資源優化篇

關於spark調優相關事宜,本章先自萬物起始之初,集群的資源優化講起。可以在 master 之後 class之前指定如下引數 driver cores 指定driver端使用的core數。driver memory 指定driver端使用的記憶體數,如果driver端有 資料廣播的時候,可以多申請記...