Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark何时会自动清理缓存的RDD?_Apache Spark_Caching_Spark Dataframe_Rdd - Fatal编程技术网

Apache spark Spark何时会自动清理缓存的RDD?

Apache spark Spark何时会自动清理缓存的RDD?,apache-spark,caching,spark-dataframe,rdd,Apache Spark,Caching,Spark Dataframe,Rdd,使用scala终端的RDD.cache()方法缓存的RDD存储在内存中 这意味着它将消耗火花过程本身可用的部分ram 话虽如此,如果ram受到限制,并且缓存了越来越多的rdd,spark什么时候会自动清理rdd缓存占用的内存?spark会清理缓存的rdd和数据集/数据帧: 当通过调用RDD.unpersist()/Dataset.unpersist方法或Catalog.clearCache显式请求它时 定期,由以下人员: Spark会自动监视每个节点上的缓存使用情况,并以最近最少使用(LRU)

使用scala终端的RDD.cache()方法缓存的RDD存储在内存中

这意味着它将消耗火花过程本身可用的部分ram


话虽如此,如果ram受到限制,并且缓存了越来越多的rdd,spark什么时候会自动清理rdd缓存占用的内存?

spark会清理缓存的
rdd
数据集
/
数据帧

  • 当通过调用
    RDD.unpersist
    ()/
    Dataset.unpersist
    方法或
    Catalog.clearCache
    显式请求它时
  • 定期,由以下人员:

    Spark会自动监视每个节点上的缓存使用情况,并以最近最少使用(LRU)的方式删除旧数据分区。如果要手动删除RDD,而不是等待它从缓存中掉出来,请使用RDD.unpersist()方法

  • 当相应的分布式数据结构被垃圾回收时


如果不再使用RDD,Spark将自动取消保留/清除RDD或数据帧。要检查是否缓存了RDD,请检查Spark UI,检查存储选项卡并查看内存详细信息

在终端上,我们可以使用“rdd.unpersist()”或“sqlContext.uncacheTable”(“sparktable”)”


从内存中删除RDD或表。Spark专门用于延迟计算,除非您执行任何操作,否则它不会将任何数据加载或处理到RDD或数据帧中。

如果您想取消缓存RDD,可以尝试
.unpersist()
:请参见否,我想知道Spark何时会自动执行此操作?ContextCleaner负责定期执行此操作:缓存以最近使用最少的方式进行清理。此外,分配给缓存的内存与用于计算的内存是分开的。