繁体   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