spark submit 引數設定

2022-09-19 04:51:10 字數 2065 閱讀 2424

在使用spark時,根據集群資源情況和任務資料量等,合理設定引數,包括但不限於以下:

引數說明

master

yarn  e-mapreduce 使用 yarn 的模式

yarn-client:等同於 –-master yarn —deploy-mode client, 此時不需要指定deploy-mode。 

yarn-cluster:等同於 –-master yarn —deploy-mode cluster, 此時不需要指定deploy-mode。

class

作業的主類

deploy-mode

client 模式表示作業的 am 會放在 master 節點上執行。要注意的是,如果設定這個引數,那麼需要同時指定上面 master 為 yarn。

cluster 模式表示 am 會隨機的在 worker 節點中的任意一台上啟動執行。要注意的是,如果設定這個引數,那麼需要同時指定上面 master 為yarn。

executor-cores

每個executor使用的核心數,預設為1

num-executors

啟動executor的數量,預設為2

executor-memory

executor的記憶體大小,預設為1g

driver-cores

driver使用的核心數,預設為1

driver-memory

driver的記憶體大小,預設為1g

queue

指定了放在哪個佇列裡執行

spark.default.parallelism

該引數用於設定每個stage的預設task數量。這個引數極為重要,如果不設定可能會直接影響你的spark作業效能,spark官網建議的設定原則是,設定該引數為num-executors * executor-cores的2~3倍較為合適

spark.storage.memoryfraction   

該引數用於設定rdd持久化資料在executor記憶體中能佔的比例,預設是0.6。也就是說,預設executor 60%的記憶體,可以用來儲存持久化的rdd資料。根據你選擇的不同的持久化策略,如果記憶體不夠時,可能資料就不會持久化,或者資料會寫入磁碟。

spark.shuffle.memoryfraction

該引數用於設定shuffle過程中乙個task拉取到上個stage的task的輸出後,如果發現使用的記憶體超出了這個20%的限制,那麼多餘的資料就會溢寫到磁碟檔案中去,如果發現使用的記憶體超出了這個20%的限制,那麼多餘的資料就會溢寫到磁碟檔案中去,此時就會極大地降低效能。

total-executor-cores

所有executor的總核數

(1)executor_cores*num_executors 

表示的是能夠並行執行task的數目不宜太小或太大!一般不超過總隊列 cores 的 25%,比如佇列總 cores    400,最大不要超過100,最小不建議低於40,除非日誌量很小。

(2)executor_cores 

不宜為1!否則 work 程序中線程數過少,一般 2~4 為宜。

(3)executor_memory 

一般 6~10g 為宜,最大不超過20g,否則會導致gc代價過高,或資源浪費嚴重。

(4)driver-memory 

driver 不做任何計算和儲存,只是下發任務與yarn資源管理器和task互動,除非你是 spark-shell,否則一般 1-2g

(5)如果需要對rdd進行cache,那麼更多的記憶體,就可以快取更多的資料,將更少的資料寫入磁碟,甚至不寫入磁碟。減少了磁碟io。

(6)對於shuffle操作,reduce端,會需要記憶體來存放拉取的資料並進行聚合。如果記憶體不夠,也會寫入磁碟。

如果給executor分配更多記憶體以後,就有更少的資料,需要寫入磁碟,甚至不需要寫入磁碟。減少了磁碟io,提公升了效能。

(7)對於task的執行,可能會建立很多物件.如果記憶體比較小,可能會頻繁導致jvm堆記憶體滿了,然後頻繁gc,垃圾** ,minor gc和full gc.(速度很慢).記憶體加大以後,帶來更少的gc,垃圾**,避免了速度變慢,效能提公升。

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

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

spark submit指令碼引數的設定

driver memory 2g executor memory 4g executor cores 1 num executors 60一共60個executor,每個executor,1個cores,4個g的memory,共使用資源 240g的memory,60個core driver memo...

Matlab plot 引數設定

一 matlab繪圖中用到的直線屬性包括 1 linestyle 線形 2 linewidth 線寬 3 color 顏色 4 markertype 標記點的形狀 5 markersize 標記點的大小 6 marke cecolor 標記點內部的填充顏色 7 markeredgecolor 標記點...