Spark效能調優之分配資源

2021-09-24 18:46:46 字數 1040 閱讀 7649

結論分配更多的資源才是效能調優的王道。 在寫完乙個spark作業後,要進行效能調優的時候,第一件事就是調配更多的資源;如果已經分配到你能力範圍內的資源頂端後,公司無法再給你更多資源了;再考慮其他效能優化的點。(筆者後面會寫到更多的效能優化的點)

1.分配哪些資源?

2.給**分配這些資源?

3.資源分配到多大,算是最大了呢?

1.分配executor、 給每個executor分配cpu、給每個executor分配memory記憶體、driver memory

2.在生產環境中,提交spark作業時,spark-submit shell指令碼裡面調整相應的引數

spark standalone模式,你就應該根據集群中,大概有多少個g的記憶體,多少cpu core。然後根據實際情況,調節每乙個spark作業的資源分配。比如,集群10臺機器,每台機器4g記憶體,4個cpu core。假設設定有40個executor,那麼平均每個executor 2g記憶體,2個cpu core。

3.乙個原則:你能使用的資源有多大,就盡量分配到最大(executor數量,幾十到上百不等; executor分配到的記憶體;每個executor分配到的cpu )

1.增加executor:

2.增加每個executor的cpu core:

一樣的,增加每個executor的cpu core,也是增加並行能力。

3.增大每個executor的memory記憶體:

給每個executor加大其記憶體,也會提公升效能。三點:

rdd運算過程中,可能會對rdd作cache快取。此時,如果記憶體夠的話,就可以快取資料到記憶體,只讓少量的快取到磁碟,甚至不快取到磁碟。減少磁碟io,提高運算效能。

資料處理過程中,shuffle操作時,在reduce(聚合資料)端,也需要記憶體存放拉取到的資料,並進行聚合。如果記憶體不夠,那資料也會寫入磁碟。反之,如果給executor分配更多記憶體,那就只有少量資料寫入磁碟,甚至不需要寫入磁碟。減少磁碟io,提高運算效能。

我們在通過分配資源提高spark作業效能時,要清楚地知道調整哪些資源會對應提公升哪塊效能。這樣有針對性調整資源,提高spark作業效能。

Spark效能調優之資源分配

效能優化王道就是給更多資源!機器更多了,cpu更多了,記憶體更多了,效能和速度上的提公升,是顯而易見的。基本上,在一定範圍之內,增加資源與效能的提公升,是成正比的 寫完了乙個複雜的spark作業之後,進行效能調優的時候,首先第一步,我覺得,就是要來調節最優的資源配置 在這個基礎之上,如果說你的spa...

spark 效能調優

核心調優引數如下 num executors executor memory executor cores driver memory spark.default.parallelizm spark.storage.memoryfraction spark.shuffle.memoryfractio...

Spark效能調優

日常工作使用spark處理業務問題中不可避免的都會碰到需要對spark的效能進行調優的情況,這裡就介紹一下對spark的效能調優。1.調節記憶體分配 因為在spark中堆記憶體被劃分為兩塊,一塊是給rdd的cache和persist操作rdd資料快取使用的,另一塊是給spark運算元函式使用的,函式...