Spark優化之廣播共享資料

2021-09-24 02:51:24 字數 577 閱讀 9814

目錄

一:廣播變數(broadcast variable)

二:例子

三:廣播的變數是存放在哪?

唯讀屬性,每個節點拷貝

好處:節省了記憶體的消耗,節省流量的消耗(每個節點上可能有 100 個 task)

廣播前:

val myconf = new myconfiguration();//配置檔案很大,100m

val rdd = ...;

rdd.foreach(ele=>ele.myconf);

廣播後:

val myconf = new myconfiguration();

val broadcastconf = sc.broadcast(myconf);

val rdd = ...;

rdd.foreach(ele => ele.broadcastconf);

原因:預設情況:

運算元函式使用到的外部資料,會被拷貝到每乙個task中,

如果使用的外部資料很大,會占用大量的記憶體,和產生大量的網路資料傳輸。

每乙個worker節點上拷貝乙份兒

56 Spark效能優化之廣播共享資料

廣播共享資料原理.png 如果你的運算元函式中,使用到了特別大的資料,那麼,這個時候,推薦將該資料進行廣播。這樣的話,就不至於將乙個大資料拷貝到每乙個task上去。而是給每個節點拷貝乙份,然後節點上的task共享該資料。這樣的話,就可以減少大資料在節點上的記憶體消耗。並且可以減少資料到節點的網路傳輸...

Spark之廣播變數

廣播變數 1.客戶端的 driver 中有乙個 list 如果 executor task要用到這個 list 這時候 在driver 建立乙個 list廣播變數 這樣會在 executor 啟動乙個 blockmanager 來管理 driver廣播的 變數 在driver一廣播變數 execut...

spark優化之資料傾斜

資料傾斜的概念 有的時候,我們可能會遇到大資料計算中乙個最棘手的問題 資料傾斜,此時spark作業的效能會比期望的差的多。資料傾斜調優,就是使用各種技術方案解決不同型別的資料傾斜問題以保證spark作業的效能 絕大多數task執行的都非常快,但個別task執行極慢,比如,總共有1000個task,9...