Spark vs Flink 低内存可用

Spark vs Flink low memory available

我已经构建了一个 Spark 和 Flink k-means 应用程序。 我的测试用例是 3 节点集群上 100 万个点的集群。

当内存中的瓶颈开始出现时,Flink 开始外包到磁盘,工作缓慢但可以工作。 但是,如果内存已满,Spark 会丢失执行者并重新启动(无限循环?)。

我尝试在邮件列表的帮助下自定义内存设置,谢谢。但是Spark还是不行。

是否需要设置什么配置?我的意思是 Flink 在低内存下工作,Spark 也必须能够;还是不?

我不是 Spark 专家(我是 Flink 贡献者)。据我所知,如果没有足够的主内存,Spark 无法溢出到磁盘。这是 Flink 相对于 Spark 的优势之一。然而,Spark 宣布了一个新的项目调用 "Tungsten" 以启用类似于 Flink 的托管内存。我不知道这个功能是否已经可用:https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.html

有几个关于 Spark 内存不足问题的 SO 问题(使用 "spark out of memory" 进行互联网搜索也有很多结果):

spark java.lang.OutOfMemoryError: Java heap space Spark runs out of memory when grouping by key Spark out of memory

也许其中之一有帮助。