Spark RDD分区缓存自动淘汰功能是在哪个版本正式实现的?
结论
RDD无法全部存入内存时自动淘汰分区、避免OOM的特性是Spark 1.6版本正式引入的。
具体说明
- Spark 1.6版本之前使用静态内存管理机制,存储内存、执行内存的占比是固定划分的,一旦RDD缓存量超出分配的存储内存上限,就会直接抛出OOM错误。
- 1.6版本上线了统一内存管理机制,核心调整是存储内存和执行内存可以动态占用对方的空闲空间;当存储内存不足时,会按照LRU规则淘汰旧的RDD分区,被淘汰的分区后续需要使用时会自动重新计算,从根本上避免了缓存RDD导致的堆内存溢出问题。
- 该特性没有在官方版本说明里单独列项,是和统一内存管理的整体更新合并发布的,所以单独检索特性变更记录很难找到对应的说明。
- 很多用户会误以为该特性是2.0版本上线的,是因为2.0版本进一步优化了统一内存管理的相关逻辑,且该模式彻底成为默认配置,不再提供旧的静态内存管理作为备选。
- 你找到的对应Jira工单确实是该功能的迭代记录,和1.6版本统一内存管理的上线属于配套功能调整。
内容的提问来源于stack exchange,提问作者samthebest
相关产品推荐
相关产品推荐

