spark 内存分布:
spark版本1.6之前 静态内存管理
堆内内存分布:存储内存storage 、执行内存 Execution、其他内存 other
存储内存:用于缓存RDD数据和broadcast数据,占系统内存的60%
执行内存:用于缓存在shuffer过程中的中间数据 占系统内存的20%
其他内存:用户定义的数据结构或spark内部元数据 占系统内存的20%
推外内存分布 存储内存和执行内存 各占50%
spark1.6之后 统一内存管理
堆内内存分布:存储内存storage 、执行内存 Execution、其他内存 other
存储内存:用于缓存RDD数据和broadcast数据,占系统内存的30%
执行内存:用于缓存在shuffer过程中的中间数据 占系统内存的30%
其他内存:用户定义的数据结构或spark内部元数据 占系统内存的40%
存储内存和执行内存之间有 动态占用机制。若己方不足,对方空余,可占用对方内存
Execution内存被对方占用后可强制回收
推外内存分布 存储内存和执行内存 各占50%
也有动态占用机制
刚入坑不久,程序小白,不对的地方请大佬多多指教,有兴趣的话可以点赞加关注,多交流交流技术