Apache Spark:未缓存数据帧的内存占用

时间:2016-06-15 12:18:22

标签: apache-spark apache-spark-sql spark-dataframe

我的应用程序从镶木地板读取数据框并通过一系列ml变换器运行它,其中每个变换器使用withColumn函数向数据框添加列。生成的数据框将写回到镶木地板。所有这一过程都在一个阶段内完成,包含200个任务(与原始数据框中的分区数相同)

我没有缓存任何数据框,实际上,Web UI中的“存储”选项卡为空。尽管如此,工作节点(每个30G内存)在整个运行过程中慢慢消耗越来越多的内存,直到最终任务开始失败。在工作日志中,我看到下面的消息(我假设与内存问题有关)。

  

INFO worker.Worker:Executor app-20160615090601-0007 / 665完成了   state EXITED message命令退出,代码为137 exitStatus 137

预计会出现这种情况吗?如果我没有坚持任何东西,为什么Spark没有将输出写入镶木地板并在运行期间释放内存?数据框的内存占用量应该以什么方式保留?

注意:我打开了GC日志记录,在任务失败的时候我没有看到任何异常行为(在整个运行期间,这里和那里只有一些分配失败。)

0 个答案:

没有答案