一:使用tungsten功能
1, 如果想讓您的程式使用tungsten的功能,可以配置:
spark.shuffle.manager=tungsten-sort
2, dataframe中自動開啟了
tungsten
功能;
二:tungsten-sort base shuffle writer內幕
1, 寫資料在記憶體足夠大的情況下是寫到page裡面,在
page
中有一條條的
record
,如果記憶體不夠的話會
spill
到磁碟上;
2, 如何看記憶體是是否足夠呢?兩方面:
a) 系統預設情況下給shufflemaptask最大準備了多少記憶體空間,預設情況下是
executorheapmemory * 0.8 * 0.2
spark.shuffle.memoryfraction=0.2 spark.shuffle.safetyfraction=0.8
b) 另外一方面是和task處理的
partition
大小緊密相關;
3, 在tungsten下獲取資料的類叫做
blockstoreshufflereader
,其底層其實是
page;
spark效能優化
熟悉spark核心之後,深刻體會到了spark開發中存在著大量細節左右著計算效能。趁著剛看過大概的流程,先基於目前的感受和相關資料,總結一下可能存在優化空間的地方。spark優化其實就是將不必要的開銷能省就省。建立rdd是昂貴的,從磁碟讀取rdd也是昂貴的,需要大量的io開銷,shuffle是與基於...
spark的效能優化
因為之前在tesla集群上申請了1000個節點被噴之後,現在只敢申請100個節點,後來導致乙個嚴重的結果,自從100節點以來再也沒有跑出結果。進而意識到了spark優化的重要性,現再次總結一下 1.乙個通用的調整並行度的方式 首先要明確乙個概念,hadoop為每乙個partition建立乙個task...
spark效能優化二
一 task效能優化 1,慢任務的效能優化 可以考慮減少每個partition處理的資料量,同時建議開啟 spark.speculation,2,儘量減少shuffle,例如我們要儘量減少 groupbykey 的操作,因為 groupbykey 會要求通過網路拷貝 shuffle 所有的資料,優先...