首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache是将RDD缓存在节点级还是集群级?

Apache是将RDD缓存在节点级还是集群级?
EN

Stack Overflow用户
提问于 2018-09-20 11:30:12
回答 2查看 259关注 0票数 3

我知道Apache 持久化方法会将RDD保存在内存中,如果内存空间不足,则将剩余的RDD分区存储在文件系统(磁盘)中。我似乎无法理解的是以下几点:

假设我们有一个集群,我们想要持久化一个RDD。假设节点A没有很大的内存空间,而节点B有。现在假设在运行持久化命令之后,节点A将耗尽内存。现在的问题是:

Apache是否在节点B中寻找更多的内存空间,并尝试将所有内容存储在内存中?

或者考虑到节点A中没有足够的空间,即使节点B中有可用的内存空间,Spark也会将剩余的RDD分区存储在节点A的磁盘中?

谢谢你的回答。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-20 11:48:34

通常,星火并不会搜索免费空间。数据在负责特定分区的执行器上本地缓存。

唯一的例外是使用复制持久性模式时--在这种情况下,将在另一个节点上放置其他副本。

票数 2
EN

Stack Overflow用户

发布于 2018-09-20 11:52:49

我能找到的最接近的东西就是这个缓存或不缓存。在很多情况下,数据是轻微倾斜的,在试图将数据缓存/持久化到RAM时,会得到与内存相关的异常/故障,其中一种方法是使用像MEMORY_AND_DISK,这样的StorageLevels,但很明显,缓存和读取这些分区要花费更长的时间。

另外,在Spark中,您可以找到有关执行器的信息,以及它们用于缓存的内存的多少,您可以尝试和监视它的行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52424157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档