gpt4 book ai didi

scala - 缓存与 localCheckpoint 以及如何阻止 Spark 删除它?

转载 作者:行者123 更新时间:2023-12-02 18:29:27 25 4
gpt4 key购买 nike

我知道 localCheckpoint 删除了重建 RDD 所需的历史记录。 cache 保存 RDD 的当前状态,因此不需要重建它。

但是,我对几个方面感到困惑。如果我执行 localCheckpoint ,并且稍后在代码中需要此 RDD,我经常会收到关于如何不再找到分区的 Exception 异常。

我查看了sparkUI中的Storage选项卡,它显示只保存了一小部分RDD,比如17%。

所以我阅读了更多内容并意识到 Spark 会丢弃旧的 RDD。 Spark 有没有办法永久保留它?

另外,如果我使用 cache 而不是 localCheckpoint,问题会解决吗?但这只是需要时间,因为 Spark 必须重新计算分区?

总的来说,我只是想在我工作的大部分时间里将 RDD 保留在内存中,以便能够在最后将其合并回来,但当我到达那里时,Spark 已经删除了它。我该如何解决这个问题?

执行 localCheckpoint.cachecache.localCheckpoint 有什么作用吗?或者其中之一就足够了?

最佳答案

您需要使用 localCheckpointcheckpoint 的原因是什么?当使用 localCheckpoint 时,您的截断不进行复制,速度更快,但可靠性较差,这可能是您遇到麻烦的地方。

保存位置的一般差异:

cache 正在保存到内存(如果内存太大,无法保存到磁盘),checkpoint 正在直接保存到磁盘。如果内存已满(无论是您自己还是其他人,如果他们在同一个集群上工作),cachepersist 可以被覆盖,如果您的集群被占用,则它们将被清除。终止或重新启动。 checkpoint 将持久保存到 HDFS 或本地存储,并且仅在手动完成时才会被删除。每个都有不同的目的。

更多详细信息(强烈推荐阅读):

https://github.com/JerryLead/SparkInternals/blob/master/markdown/english/6-CacheAndCheckpoint.md

Does doing localCheckpoint.cache or cache.localCheckpoint do anything ? Or one or the other is enough ?

检查点之前

缓存checkpoint 在它自己的作业上运行,因此如果 RDD 被缓存,它将从缓存中提取而不是重新运行它。

关于scala - 缓存与 localCheckpoint 以及如何阻止 Spark 删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52651282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com