我已经在独立模式下设置了一个 spark 作业服务器(参见https://github.com/spark-jobserver/spark-jobserver/tree/jobserver-0.6.2-spark-1.6.1 )。
我创建了一个要使用的默认上下文。目前我在这种情况下有两种工作:
- 与另一台服务器同步:
- 从其他服务器的数据库中转储数据;
- 执行一些连接,减少数据,生成新的 DF;
- 将得到的DF保存在parquet文件中;
- 将此 parquet 文件加载为临时表并缓存它;
- 查询:对缓存表执行 sql 查询。
我坚持的唯一对象是将缓存的最终表。
我不明白为什么当我执行同步时,所有分配的内存都被使用并且从未释放,但是,如果我直接加载 parquet 文件(重新启动服务器,使用之前生成的 parquet 文件),只使用了一小部分内存。
我错过了什么?有没有办法释放未使用的内存?
谢谢