大數(shù)據(jù)工程師面試題 - Spark 調(diào)優(yōu)(九)
我是大數(shù)據(jù)歐老師,曾在互聯(lián)網(wǎng)某大廠任大數(shù)據(jù)負(fù)責(zé)人,從業(yè)大數(shù)據(jù)領(lǐng)域近 10 年,全網(wǎng)粉絲 5000+,從很多候選人的面試和咨詢(xún)中復(fù)盤(pán)了大數(shù)據(jù)工程師的面試全流程,如果你有求職大數(shù)據(jù)工程師的計(jì)劃,歡迎找我聊一聊!
數(shù)據(jù)傾斜的解決方案
解決方案八:參數(shù)調(diào)優(yōu)
shuffle相關(guān)參數(shù)調(diào)優(yōu)
以下是Shffule過(guò)程中的一些主要參數(shù),這里詳細(xì)講解了各個(gè)參數(shù)的功能、默認(rèn)值以及基于實(shí)踐經(jīng)驗(yàn)給出的調(diào)優(yōu)建議。
Spark 參數(shù)優(yōu)化詳解
以下列舉了Spark參數(shù)調(diào)優(yōu)的一些關(guān)鍵參數(shù)及其優(yōu)化建議:
1. spark.shuffle.file.buffer (默認(rèn)值:32k)
該參數(shù)用于設(shè)置 shuffle write task 的 BufferedOutputStream 的 buffer 緩沖大小。合理增大該參數(shù)的值,可以有效減少磁盤(pán)IO次數(shù),進(jìn)而提升性能。
2. spark.reducer.maxSizeInFlight (默認(rèn)值:48m)
該參數(shù)用于設(shè)置 shuffle read task 的 buffer 緩沖大小。合理增加該參數(shù)的值可以減少網(wǎng)絡(luò)傳輸?shù)拇螖?shù),進(jìn)而提升性能。
3. spark.shuffle.io.maxRetries (默認(rèn)值:3)
該參數(shù)表示 shuffle read task 從 shuffle write task 所在節(jié)點(diǎn)拉取屬于自己的數(shù)據(jù)時(shí),可以重試的最大次數(shù)。對(duì)于包含大量 shuffle 操作的作業(yè),建議增加重試最大次數(shù),以提升作業(yè)的穩(wěn)定性。
4. spark.shuffle.io.retryWait (默認(rèn)值:5s)
該參數(shù)代表了每次重試?yán)?shù)據(jù)的等待間隔。建議加大間隔時(shí)長(zhǎng)(比如60s),以增加 shuffle 操作的穩(wěn)定性。
5. spark.shuffle.memoryFraction (默認(rèn)值:0.2)
該參數(shù)表示 Executor 內(nèi)存中,分配給 shuffle read task 進(jìn)行聚合操作的內(nèi)存比例。如果內(nèi)存充足,而且很少使用持久化操作,建議調(diào)高這個(gè)比例,以提高性能。
6. spark.shuffle.manager (默認(rèn)值:sort)
對(duì)于業(yè)務(wù)邏輯不需要對(duì)數(shù)據(jù)進(jìn)行排序,可以考慮使用 bypass 機(jī)制或優(yōu)化的 HashShuffleManager 來(lái)提高性能。
7. spark.shuffle.sort.bypassMergeThreshold (默認(rèn)值:200)
當(dāng) ShuffleManager 為 SortShuffleManager 時(shí),如果 shuffle read task 的數(shù)量小于這個(gè)閾值(默認(rèn)是200),則 shuffle write 過(guò)程中不會(huì)進(jìn)行排序操作。合理調(diào)大此參數(shù)可以減少排序的性能開(kāi)銷(xiāo)。
8. spark.shuffle.consolidateFiles (默認(rèn)值:false)
如果使用 HashShuffleManager,該參數(shù)有效。開(kāi)啟 consolidate 機(jī)制可以合并 shuffle write 的輸出文件,減少磁盤(pán)IO開(kāi)銷(xiāo),提升性能。
#大數(shù)據(jù)##大數(shù)據(jù)工程師##大數(shù)據(jù)知識(shí)體系##大數(shù)據(jù)面試##大數(shù)據(jù)面經(jīng)#解決職場(chǎng)真實(shí)面試問(wèn)題,分享同學(xué)真實(shí)成功案例,歡迎訂閱關(guān)注!