k8s上的Spark结构化流

时间:2019-07-08 06:24:24

标签: apache-spark spark-structured-streaming

我们正在运行带有Spark 2.4.3的结构化流传输过程,该过程将从kafka读取数据,然后将数据写回到kafka中的另一个主题,然后转换数据(展平并使用udf创建一些列)。流正在处理时间是每两分钟一次。 10到12个小时后,我们注意到由于内存消耗大,我们的Pod正在关闭。如前所述,我们没有聚合,也没有在数据集上使用persist。我们注意到的是堆内存在不断增长。  有什么主意吗?

1 个答案:

答案 0 :(得分:1)

我们找到了解决问题的方法,花了一段时间,很明显,spark保留了用于UI的对象,尽管我们将spark配置为使用spark.ui.enabled:false运行,但此集合在不断增长。解决方案是使用配置parma spark.sql.ui.retainedExecutions限制它。 spark sql ui data 由于我们的数据集大约有300列,因此我们很容易地重现了内存问题,因此UI保存的数据非常大。