默认情况下,可用内存的数量为每个执行者Java虚拟机(JVM)中的分配内存堆。这是控制的spark.executor.memory财产。
然而,一些意想不到的行为观察实例分配大量的内存。jvm扩大内存大小,垃圾收集器的问题变得明显。这些问题可以被解决通过限制在垃圾收集器的内存数量管理。
选择砖集群类型使堆外模式,限制了在垃圾收集器的内存数量管理。这就是为什么某些集群有火花spark.executor.memory值设置为整个集群内存的一小部分。
堆模式控制的属性spark.memory.offHeap.enabled和spark.memory.offHeap.size在火花1.6.0以上是可用的。
AWS
下面的砖集群类型使堆内存的政策:
- c5d.18xlarge
- c5d.9xlarge
- i3.16xlarge
- i3en.12xlarge
- i3en.24xlarge
- i3en.2xlarge
- i3en.3xlarge
- i3en.6xlarge
- i3en.large
- i3en.xlarge
- m4.16xlarge
- m5.24xlarge
- m5a.12xlarge
- m5a.16xlarge
- m5a.24xlarge
- m5a.8xlarge
- m5d.12xlarge
- m5d.24xlarge
- m5d.4xlarge
- r4.16xlarge
- r5.12xlarge
- r5.16xlarge
- r5.24xlarge
- r5.2xlarge
- r5.4xlarge
- r5.8xlarge
- r5a.12xlarge
- r5a.16xlarge
- r5a.24xlarge
- r5a.2xlarge
- r5a.4xlarge
- r5a.8xlarge
- r5d.12xlarge
- r5d.24xlarge
- r5d.2xlarge
- r5d.4xlarge
- z1d.2xlarge
- z1d.3xlarge
- z1d.6xlarge
- z1d.6xlarge
Azure
以下Azure砖集群类型使堆内存的政策:
- Standard_L8s_v2
- Standard_L16s_v2
- Standard_L32s_v2
- Standard_L32s_v2
- Standard_L80s_v2