如何使鲨鱼/火花清除缓存?

hadoop hive apache-spark shark-sql

26427 观看

4回复

105 作者的声誉

当我运行我的鲨鱼查询时,内存被囤积在主内存中这是我的最高命令结果。


Mem:74237344k总计,70080492k使用,4156852k免费,399544k缓冲交换:总计4194288k,使用480k,免费4193808k,缓存65965904k


即使我杀死/停止鲨鱼,火花,hadoop进程,这也不会改变。现在,清除缓存的唯一方法是重启机器。

以前有人遇到过这个问题吗?是火花/鲨鱼的一些配置问题还是已知问题?

作者: venkat 的来源 发布者: 2013 年 12 月 11 日

回应 (4)


29

5901 作者的声誉

您是否使用该cache()方法来持久保存RDD?

cache()只是调用persist(),所以要删除RDD的缓存,调用unpersist()

作者: herman 发布者: 22.07.2014 02:24

20

1029 作者的声誉

决定

要删除所有缓存的数据:

sqlContext.clearCache()

资料来源:https//spark.apache.org/docs/2.0.1/api/java/org/apache/spark/sql/SQLContext.html

作者: Henrique Florêncio 发布者: 19.05.2017 05:36

1

78 作者的声誉

我跟着这个,它对我来说很好::

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

sc.getPersistentRDDs是一个存储缓存数据详细信息的Map。

scala> sc.getPersistentRDDs

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

作者: Sankar 发布者: 02.01.2019 04:14

0

918 作者的声誉

这很奇怪。提出的问题与答案无关。发布的缓存OP由操作系统拥有,与spark无关。它是操作系统的优化,我们不应该担心特定的缓存。

火花缓存通常在内存中,但这将在RSS部分,而不是操作系统的缓存部分。

作者: Shawn 发布者: 25.07.2019 05:35
32x32