2016-12-15 43 views
1

我在独立模式下设置了一个spark作业服务器(请参阅https://github.com/spark-jobserver/spark-jobserver/tree/jobserver-0.6.2-spark-1.6.1)。Spark作业服务器释放内存

我创建了一个使用的默认上下文。目前我有2此背景下样的工作:

  • 同步与其他服务器:
    • 来自其他服务器的数据库转储数据;
    • 执行一些连接,减少数据,生成一个新的DF;
    • 将获取的DF保存在实木复合地板文件中;
    • 将此parquet文件作为临时表加载并缓存;
  • 查询:对缓存表执行sql查询。

我坚持的唯一对象是将被缓存的最终表。

我没有得到的是为什么当我执行同步时,所有分配的内存都被使用并且从不释放,但是,如果我直接加载地板文件(重新启动服务器,使用地板文件之前生成的),仅使用一部分内存。

我错过了什么?有一种方法可以释放未使用的内存?

谢谢

回答

1

您可以通过unpersisting缓存表释放内存:yourTable.unpersist()