簡體   English   中英

如何讓鯊魚/火花清除緩存?

[英]How to make shark/spark clear the cache?

當我運行我的鯊魚查詢時,內存被囤積在主內存中這是我的頂級命令結果。


內存:總共 74237344k,已使用 70080492k,可用 4156852k,399544k 緩沖區交換:總共 4194288k,已使用 480k,可用 4193808k,已緩存 65965904k


即使我殺死/停止鯊魚、火花、Hadoop 進程,這也不會改變。 現在,清除緩存的唯一方法是重新啟動機器。

有沒有人遇到過這個問題? 是一些配置問題還是 spark/shark 中的已知問題?

刪除所有緩存數據:

sqlContext.clearCache()

來源: https : //spark.apache.org/docs/2.0.1/api/java/org/apache/spark/sql/SQLContext.html

如果要從緩存中刪除特定的 Dataframe:

df.unpersist()

您是否使用cache()方法來持久化 RDD?

cache()只是調用persist() ,因此要刪除 RDD 的緩存,請調用unpersist()

這很奇怪。 問的問題與答案無關。 發布的緩存OP歸操作系統所有,與spark無關。 這是操作系統的優化,我們不應該擔心那個特定的緩存。

Spark 緩存通常在內存中,但這將在 RSS 部分,而不是操作系統的緩存部分。

我遵循了這個,對我來說效果很好::

for ((k,v) <- sc.getPersistentRDDs) {
   v.unpersist()
}

sc.getPersistentRDDs 是一個 Map,用於存儲緩存數據的詳細信息。

Scala> sc.getPersistentRDDs

res48: scala.collection.Map[Int,org.apache.spark.rdd.RDD[_]] = Map()

提出的解決方案:

sqlContext.clearCache()

給了我一個錯誤,我不得不改用這個:

sqlContext.catalog.clearCache()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM