一个Executor对应一个JVM进程。
从Spark的角度看,Executor占用的内存分为两部分:ExecutorMemory和MemoryOverhead
一、ExecutorMemory
ExecutorMemory为JVM进程的Java堆区域。大小通过属性spark.executor.memory设置。也可以在spark-submit命令时用参数--executor-memory设置。
本文详细介绍了Spark Executor在YARN上的内存分配,包括ExecutorMemory(Java堆内存,用于存储RDD数据)和MemoryOverhead(JVM非堆内存)。ExecutorMemory通过`spark.executor.memory`设置,而MemoryOverhead可通过`spark.yarn.executor.memoryOverhead`调整。当内存不足时,RDD分区可能被覆盖或引发OOM异常,导致Executor被结束。若JVM总内存超限,YARN会直接杀死Container。建议根据实际情况适当设置MemoryOverhead,避免JVM进程被kill。
一个Executor对应一个JVM进程。
从Spark的角度看,Executor占用的内存分为两部分:ExecutorMemory和MemoryOverhead
一、ExecutorMemory
ExecutorMemory为JVM进程的Java堆区域。大小通过属性spark.executor.memory设置。也可以在spark-submit命令时用参数--executor-memory设置。
1万+
1248

被折叠的 条评论
为什么被折叠?