2
在做Spark性能調優時,我發現(不出所料)做廣播連接可以消除混洗並提高性能。我一直在嘗試在較大的連接上進行廣播,並且我已經能夠成功地使用我期望的更大的廣播連接 - 例如,廣播一個2GB的壓縮(並且大得多的未壓縮)數據集,運行在一個60GB節點的集羣上,內存爲30GB。如果Spark廣播連接太大會發生什麼?
但是,由於數據大小的波動,我擔心將其投入生產,而且我想知道如果廣播變得「太大」會發生什麼。我在想象兩種情況:
A)數據太大而不適合內存,所以有些數據寫入磁盤,性能會略微下降。這將是好的。或者,
B)數據太大而不適合內存,所以它會拋出OutOfMemoryError並使整個應用程序崩潰。不太好。
所以我的問題是:當Spark廣播連接太大時會發生什麼?
廣播提示像普通廣播變量一樣工作嗎?這只是一個暗示,所以也許行爲是不同的 –