国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

spark 自動恢復spark context 如何管理Spark內存?

如何管理Spark內存?火花存儲器管理當Spark執(zhí)行一個應用時,Spark cluster會啟動兩個JVM進程,驅動程序和執(zhí)行器。驅動負責創(chuàng)建SparkContext上下文,提交任務,分發(fā)任務。執(zhí)行

如何管理Spark內存?

火花存儲器管理

當Spark執(zhí)行一個應用時,Spark cluster會啟動兩個JVM進程,驅動程序和執(zhí)行器。驅動負責創(chuàng)建SparkContext上下文,提交任務,分發(fā)任務。執(zhí)行器負責任務的計算任務,并將結果返回給驅動。同時,有必要為需要堅持的RDD提供存儲。驅動端的內存管理比較簡單,這里說的Spark內存管理是針對執(zhí)行端的內存管理。

Spark內存管理分為靜態(tài)內存管理和統(tǒng)一內存管理。Spark1.6之前使用靜態(tài)內存管理,Spark1.6之后引入統(tǒng)一內存管理。

靜態(tài)內存管理中的存儲內存、執(zhí)行內存和其他內存的大小在Spark應用程序運行期間是固定的,但是用戶可以在應用程序啟動之前對它們進行配置。

統(tǒng)一內存管理和靜態(tài)內存管理的區(qū)別在于存儲內存和執(zhí)行內存共享同一個空間,可以互相借用。;的空間。

1.6以上的Spark1.6版本默認使用統(tǒng)一內存管理,通過設置參數為true(默認為false)可以使用靜態(tài)內存管理。

一.具體細節(jié)

1.靜態(tài)內存管理圖

2.統(tǒng)一內存管理圖

3.如何在reduce中處理OOM?

當提取數據時,您可以 不要一次就把它放下。如果你把它放下,你可以覆蓋磁盤。

1)減少每次拉取的數據量。

2)增加洗牌聚合的記憶比例。

3)增加執(zhí)行程序的總內存。

4.無序調諧

默認值:32k參數說明:該參數用于設置shuffle寫任務的BufferedOutputStream的緩沖區(qū)大小。在將數據寫入磁盤文件之前,它將被寫入緩沖區(qū),直到緩沖區(qū)滿了,它才會溢出到磁盤。調優(yōu)建議:如果作業(yè)的可用內存資源足夠,可以適當增加該參數的大小(例如64k,必須是倍數),從而減少shuffle寫過程中重寫磁盤文件的次數,進而減少磁盤IO的數量,從而提高性能。在實踐中發(fā)現(xiàn),合理調整該參數,性能將提高1%~5%。默認值:48m參數說明:該參數用于設置shuffle read任務的緩沖區(qū)大小,這個緩沖區(qū)決定了一次可以拉取多少數據。調優(yōu)建議:如果作業(yè)的可用內存資源足夠,可以適當增加該參數的大小(例如96m),以減少拉取數據的次數,從而減少網絡傳輸的次數,提高性能。在實踐中發(fā)現(xiàn),合理地調整這個參數。性能會提升1%~5%。默認值:3參數說明:混排讀任務從混排寫任務所在節(jié)點拉取自身數據時,如果因網絡異常導致拉取失敗,會自動重試。此參數表示最大重試次數。如果在指定的次數內拉仍然不成功,可能會導致作業(yè)執(zhí)行失敗。調優(yōu)建議:對于那些涉及特別耗時的shuffle操作的作業(yè),建議增加最大重試次數(例如60次),以避免由于JVM s滿gc或網絡不穩(wěn)定。實踐中發(fā)現(xiàn),調整這個參數可以大大提高數據量巨大(幾十億到幾十億)的洗牌過程的穩(wěn)定性。Shuffle file not find任務調度程序不負責重試任務,但DAGScheduler負責重試任務。默認值:5s參數說明:具體解釋同上。該參數代表每次拉取數據的等待間隔,默認值為5s。調優(yōu)建議:建議加大間隔(如60s)以增加洗牌操作的穩(wěn)定性。默認值:0.2參數說明:該參數表示執(zhí)行程序內存中分配給聚集操作的shuffle read任務的內存比例,默認值為20%。優(yōu)化建議:資源參數優(yōu)化中解釋了該參數。如果有足夠的內存,并且很少使用持久化操作,建議增加這個比例,給shuffle read的聚合操作更多的內存,避免聚合過程中由于內存不足導致頻繁的磁盤讀寫。實踐中發(fā)現(xiàn),通過合理調整該參數,性能可以提高10%左右。默認值:sort|hash參數說明:該參數用于設置ShuffleManager的類型。在Spark 1.5之后,有三個選項:hash、sort和鎢排序。HashShuffleManager是Spark 1.2之前的默認選項,但Spark 1.2及以后的版本默認都是SortShuffleManager。鎢-sort類似于sort,但是它使用了鎢計劃中的堆外內存管理機制,使得內存使用更加高效。調優(yōu)建議:由于SortShuffleManager默認對數據進行排序,如果您的業(yè)務邏輯中需要這種排序機制,可以使用默認的SortShuffleManager。如果你的商業(yè)邏輯不。;t不需要對數據進行排序,建議參考以下參數進行優(yōu)化,避免通過bypass機制或優(yōu)化的HashShuffleManager進行排序操作。同時提供更好的磁盤讀寫性能。這里需要注意的是,鎢排序應該謹慎使用,因為之前已經發(fā)現(xiàn)了一些相應的bug。默認值:200參數說明:ShuffleManager為SortShuffleManager時,如果shuffle read任務數小于此閾值(默認值為200),則在shuffle write過程中不會對數據進行排序,而是以非優(yōu)化HashShuffleManager的寫入,但是每個任務生成的所有臨時磁盤文件都會合并到一個文件中,并單獨創(chuàng)建一個索引文件。調優(yōu)建議:當你使用SortShuffleManager時,如果你真的不 t需要排序操作,那么建議將該參數調整為大于混排讀取任務的數量。那么此時會自動啟用旁路機制,map端不會排序,減少排序的性能開銷。但是這樣的話還是會產生大量的磁盤文件,所以shuffle write的性能還有待提高。默認值:false參數說明:如果使用了HashShuffleManager,則該參數有效。如果設置為true,那么合并機制將被啟動,shuffle write的輸出文件將被大大合并。對于大量混排讀任務的情況,該方法可以大大降低磁盤IO開銷,提高性能。調優(yōu)建議:如果SortShuffleManager的排序機制確實沒有必要,可以嘗試手動將參數指定為hash,使用HashShuffleManager并在旁路機制之外開啟consolidate機制。在實踐中試用發(fā)現(xiàn),其性能比開啟旁路機制的SortShuffleManager高10%~30%。

5.無序播放調諧設置

如何使用SparkShuffle調優(yōu)配置項?

1)代碼方面,不建議硬編碼。

新SparkConf()。設置(";,"; 64 ";)

2)提交星火任務時,建議。

火花-提交-確認-確認…

3)在conf下的配置文件中,不建議使用,因為寫完以后所有應用都會用到。