默認情況下,可用內存的數量為每個執行者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