spark中的引數設定

2021-08-16 14:12:36 字數 1292 閱讀 7691

之前一直在使用spark,對於spark的引數設定了解過部分。最近當被同事問起時,感覺自己又有點模糊。

好記性不如爛筆頭。

spark的執行模式有多種,這邊就yarn提交的任務進行說明:

正常用到的引數如下:

/bin/spark-submit

–master yarn-cluster

–num-executors 100

–executor-memory 6g

–executor-cores 4

–driver-memory 1g

–conf spark.default.parallelism=1000

–conf spark.storage.memoryfraction=0.5

–conf spark.shuffle.memoryfraction=0.3 \

設定spark任務是需要多少個executor來執行,這個可以參照任務的大小和集群的規模來設定;想要最大化集群資源的話,一般是和集群的節點數保持一致,或者是集群節點數的整數倍(還需要綜合考慮單節點的記憶體,core,能呼叫的資源的數量)

單個excutor的能使用的記憶體的大小,executor-memory *num-executors 就是本次任務需要的記憶體,這個值,需要參考能呼叫的資源的大小和單節點本身的記憶體的大小,在滿足這兩個前提之下,盡可能的把這個值設定的大些;

單個executor 執行給的core的數量,不能超過單節點的core的總和;

單個core同一時間只能執行乙個task,在不影響其他人作業,且不超過節點的core的上限的時候,這個值越大執行的效率越高;

這個引數比較重要;

該引數設定的是stage劃分的task的數量,這個引數一定要設定。合理的設定,應該是num-executors*executor-cores 的2-3倍,每個core執行2-3個任務。要是不設定,預設的設定的task數量很少,要是不設定,之前設定的executor的數量等,就沒有起到作用,因為task很少 大部分的executor屬於空閒狀態。

預設占用executor 60%的記憶體 用於持久化rdd。這個值可以根據需要持久化的rdd的大小來進行設定,適當的增大\減小。參照下乙個引數一起調整。

當前stage 拉取上乙個stage的task輸出資料能使用的記憶體的大小,預設是20%。

權衡,是shuffle操作多,還是需要cache的rdd的記憶體的訴求高,兩個記憶體的佔比和為80%

剩下的20%是使用者執行**所需要的記憶體,如果發現由於頻繁的gc導致執行時間過長,可以適當的增大這個值,但是確保三個值得和是1;

Spark中各個角色的JVM引數設定

總結一下spark中各個角色的jvm引數設定 1 driver的jvm引數 xmx,xms,如果是yarn client模式,則預設讀取spark env檔案中的spark driver memory值,xmx,xms值一樣大小 如果是yarn cluster模式,則讀取的是spark defaul...

spark推測機制及引數設定

推測執行機制 推測任務是指對於乙個stage裡面拖後腿的task,會在其他節點的executor上再次啟動這個task,如果其中乙個task例項執行成功則將這個最先完成的task的計算結果作為最終結果,同時會乾掉其他executor上執行的例項。spark推測式執行預設是關閉的,可通過spark.s...

引數設定 pandas引數設定小技巧

python大資料分析記錄 分享 成長 在日常使用pandas的過程中,由於我們所分析的資料表規模 格式上的差異,使得同樣的函式或方法作用在不同資料上的效果存在差異。而pandas有著自己的一套 引數設定系統 可以幫助我們在遇到不同的資料時靈活調節從而達到最好的效果,本文就將介紹pandas中常用的...