我已经构建了Spark和Flink k-means应用程序。 我的测试用例是在3节点集群上对100万个点进行聚类。
当内存中的瓶颈开始时,Flink开始外包到磁盘并且工作缓慢但工作正常。 但是,如果内存已满并且再次启动(无限循环?),Spark会丢失执行程序。
我尝试在邮件列表的帮助下自定义内存设置,谢谢。但是Spark仍然没有用。
是否需要设置任何配置?我的意思是Flink工作的内存很低,Spark也必须能够;不是吗?
答案 0 :(得分:19)
我不是Spark专家(我是Flink的贡献者)。据我所知,如果没有足够的主内存,Spark无法溢出到磁盘。这是Flink over Spark的一个优势。然而,Spark宣布了一个新的项目电话" Tungsten"启用类似于Flink的托管内存。我不知道此功能是否已经可用:https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.html
有一些关于Spark内存问题的问题(使用&#34进行的互联网搜索;内存不足以及#34;产生许多结果):
spark java.lang.OutOfMemoryError: Java heap space Spark runs out of memory when grouping by key Spark out of memory
也许其中一个有帮助。