2
在做Spark性能调优时,我发现(不出所料)做广播连接可以消除混洗并提高性能。我一直在尝试在较大的连接上进行广播,并且我已经能够成功地使用我期望的更大的广播连接 - 例如,广播一个2GB的压缩(并且大得多的未压缩)数据集,运行在一个60GB节点的集群上,内存为30GB。如果Spark广播连接太大会发生什么?
但是,由于数据大小的波动,我担心将其投入生产,而且我想知道如果广播变得“太大”会发生什么。我在想象两种情况:
A)数据太大而不适合内存,所以有些数据写入磁盘,性能会略微下降。这将是好的。或者,
B)数据太大而不适合内存,所以它会抛出OutOfMemoryError并使整个应用程序崩溃。不太好。
所以我的问题是:当Spark广播连接太大时会发生什么?
广播提示像普通广播变量一样工作吗?这只是一个暗示,所以也许行为是不同的 –