apache-spark - k8s 上的 Spark 结构化流
问题描述
我们正在使用 spark 2.4.3 运行结构化流处理过程,该过程从 kafka 读取数据,转换数据(使用 udf 展平并创建一些列),然后将数据写回 kafka 到不同的主题。流正在处理时间是每两分钟。10 到 12 小时后,我们注意到我们的 pod 由于高内存消耗而下降。正如我上面解释的那样,我们没有聚合,也没有在数据集上使用持久化。我们注意到的是堆内存在不断增长。任何想法?
解决方案
我们找到了问题的解决方案,花了一段时间,显然 spark 保存了用于 UI 的对象,并且这个集合不断增长,尽管我们将 spark 配置为使用 spark.ui.enabled: false 运行。解决方案是使用配置 parma spark.sql.ui.retainedExecutions 来限制它。spark sql ui data 我们很容易重现内存问题,因为我们的数据集有大约 300 列,所以 UI 保存的数据非常大。
推荐阅读
- amazon-web-services - 需要一个示例步骤函数来编排多个 API 网关调用
- pine-script - 代码之间的时区转换(第 3 部分)
- css - 为 WP/Divi 减少移动设备上的标题大小
- java - 计算Java中主类的用户输入
- angular - 在全栈应用程序中没有 typescript 类的导出成员
- kubernetes - 如何在 helm install/upgrade 中将 --set 键值设置为 values.yaml
- javascript - 使用来自 react-router 的 HashRouter 搜索参数
- python - 如何在 cython 中使用 prange?
- python - 美丽的汤来抓取数据
- r - 带有 NA 值的悬挂图