Apache spark 如何在Spark中计算虚拟内存?

Apache spark 如何在Spark中计算虚拟内存?,apache-spark,yarn,hadoop2,Apache Spark,Yarn,Hadoop2,我正在Hadoop上使用Spark,想知道Spark如何将虚拟内存分配给executor 根据纱线vmem pmem,它为容器提供了2.1倍的虚拟内存 因此-如果XMX为1GB,则-->1 GB*2.1=2.1GB分配给容器 它是如何在Spark上工作的?下面的陈述是否正确 如果我给执行器内存=1GB 总虚拟内存=1 GB*2.1*spark.Thread.executor.memoryOverhead。这是真的吗 如果不是,那么如何在Spark中计算执行器的虚拟内存?对于Spark执行器资源,

我正在Hadoop上使用Spark,想知道Spark如何将虚拟内存分配给executor

根据纱线vmem pmem,它为容器提供了2.1倍的虚拟内存

因此-如果XMX为1GB,则-->1 GB*2.1=2.1GB分配给容器

它是如何在Spark上工作的?下面的陈述是否正确

如果我给执行器内存=1GB

总虚拟内存=1 GB*2.1*spark.Thread.executor.memoryOverhead。这是真的吗


如果不是,那么如何在Spark中计算执行器的虚拟内存?

对于Spark执行器资源,纱线客户端和纱线簇模式使用相同的配置:

在spark-defaults.conf中,spark.executor.memory设置为2GB


我是从:

得到的。我希望这会对您有所帮助。您能检查我的答案吗?根据executorMemory*0.10,最低384。我想知道哪一个是正确的。但我的主要问题是,在SPARK的情况下,Thread是否使用vmem pmem(默认值2.1)来计算虚拟内存,然后将开销添加到该内存中?在这种情况下,对于SPARK容器的1GB内存,总虚拟内存会变成1*2.1*开销?此语句是否正确?根据配置中的问题是:spark.executor.memory=32 GB spark.Thread.executor.memoryOverhead=6 GB为什么虚拟内存计算为152 GB(根据错误消息)?是(32+6)*4=152,其中4是纱线.nodemanager.vmem-pmem-ratio?