【问题标题】:Spark: how long does it keep RDD in cacheSpark:将RDD保存在缓存中多长时间
【发布时间】:2016-09-27 23:41:51
【问题描述】:

例如,我在内存中缓存了许多 RDD。

然后我离开应用程序几天或更长时间。

然后我尝试访问缓存的 RDD。

他们还会在记忆中吗?

或者 Spark 会在一段时间后清理未使用的缓存 RDD。

请帮忙!

【问题讨论】:

    标签: caching apache-spark rdd


    【解决方案1】:

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

    【讨论】:

    • 驱动程序不完整。它只是等待/休眠/挂起很长时间,然后访问 RDD。
    • 你的具体要求是什么,如果你想清除它,你可以使用 unpersist() 来完成。如果你什么都不做,只要你的驱动程序可以访问它们就可以使用火花上下文。
    • 我想使用比日/月/年之前缓存的 RDD(应用程序仍在运行)。在documentation 我看到:“Spark 自动监控每个节点上的缓存使用情况,并以最近最少使用 (LRU) 的方式丢弃旧数据分区。”我需要知道在哪种情况下或何时删除 RDD。
    • 我相信这个没有时间限制,比如你缓存了3个RDD,在3个中你经常访问2个,在这种情况下,最近不使用的将被丢弃为要缓存的新 RDD 提供可用内存。
    • 是的,我需要知道它什么时候会被删除。
    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    相关资源
    最近更新 更多