Apache Spark 的内存管理模型在 Spark 1.6 版本中经历了一次重大变革,从静态内存管理(Static Memory Manager)转变为统一内存管理(Unified Memory Manager)。 统一内存管理(Unified Memory Manager)的核心目标是提高内存利用率,通过让“执行内存”和“存储内存”共享同一块区域,实现动态占用。 以下是关于 Spark 统一内存模型的详细解析: --- 1. 内存区域划分 (Memory Layout) 在一个 Executor 的 JVM Heap(堆内存)中,Spark 将内存划分为三个主要区域: A. Reserved Memory (预留内存) 大小:固定为 300MB (硬编码)。 用途:用于 Spark 内部系统运行,防止 OOM。 注意:如果 Executor 的堆内存小于 1.5 300MB = 450MB,Spark 会直接报错启动失败。 B. User Memory (用户内存) 大小: 默认占比:约 40% (如果 为 0.6)。 用途: 存储用户自定义的数据结构(如 )。 Spark...