2016-12-15 40 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()