在使用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 標記點...