Spark总是删除RDD

时间:2015-07-30 17:23:08

标签: apache-spark

我已停止将数据提供给Spark,但我仍然可以看到Spark保留删除RDD,如下所示:

15/07/30 10:03:10 INFO BlockManager: Removing RDD 136661
15/07/30 10:03:10 INFO BlockManager: Removing RDD 136662
15/07/30 10:03:10 INFO BlockManager: Removing RDD 136664
15/07/30 10:03:10 INFO BlockManager: Removing RDD 136663

即使没有新数据和RDD生成,我也很困惑为什么spark会继续删除RDD。

2 个答案:

答案 0 :(得分:2)

这是因为您可能在分布式模式下运行它?数据分布在多个节点上,因此应该在整个网络上反映出来。所以它不可能是即时的。

答案 1 :(得分:2)

正如您可能知道的那样,Spark使用LRU算法管理持久化的RDD。虽然您没有添加更多数据,但Spark完全有可能删除这些RDD,因为它们已经超出Spark应用程序(作业)的范围,或者只是“太老了”。&#34 ;

缓存的RDD的生命周期由TimeStampedWeakValueHashMap管理。基本上,如果RDD的时间戳早于特定阈值,则在调用clearOldValues()时将删除RDD。

您的回答暗示您希望确保这些RDD不会被删除,因此您可能希望查看persisting your Spark data directly into Cassandra,因为它们可以很好地协同工作。