[英]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.