我注意到运行带有spark 2.0的pyspark应用程序时出现的奇怪行为。在涉及reduceByKey(因此也是shuffle)操作的脚本的第一步中,我观察到shuffle写入的数量大致符合我的预期,但溢出的数量比我预期的要多得多。我试图通过将每个执行程序分配的内存量增加至原始数量的8倍来避免这些溢出,但基本上没有溢出量的差异。奇怪的是,我也看到,虽然这个阶段正在运行,但几乎没有使用任何分配的存储内存(正如火花Web UI中的执行者标签所报告的那样)。火花溢出独立执行程序内存分配
我看到了这个先前的问题,这让我相信增加执行程序的内存可能有助于避免泄漏:How to optimize shuffle spill in Apache Spark application 。这使我相信一些硬限制导致了溢出,而不是spark.shuffle.memoryFraction参数。是否存在这样的硬限制,可能是HDFS参数之间的限制?否则,除了增加执行程序内存外,还可以做些什么来避免溢出?
非常感谢,R