我正在运行带有2名工作人员的Spark流应用程序.应用程序具有联接和联合操作.
所有批次都已成功完成,但注意到随机溢出指标与输入数据大小或输出数据大小不一致(溢出内存超过20次).
请在下图中找到火花阶段的详细信息:

经过对此的研究,发现了
当没有足够的内存用于随机数据时,会发生随机溢出.
Shuffle spill (memory) - 溢出时内存中数据的反序列化形式的大小
shuffle spill (disk) - 溢出后磁盘上数据序列化形式的大小
由于反序列化数据比序列化数据占用更多空间.所以,Shuffle溢出(内存)更多.
注意到这个溢出内存大小非常大,输入数据很大.
我的疑问是:
这种溢出是否会对性能产生很大影响?
如何优化内存和磁盘的溢出?
是否有可以减少/控制这种巨大溢出的Spark Properties?