Application Master的已分配内存和保留内存

时间:2018-07-27 08:54:35

标签: apache-spark yarn

我正在尝试了解屏幕快照中显示的“已分配内存”和“保留内存”列。 Screenshot from Application Master in YARN UI

enter image description here

我在YARN中完成的群集设置为:

yarn_nodemanager_resource_memory-mb: 16GB
yarn_scheduler_minimum-allocation-mb: 256MB
yarn_scheduler_increment-allocation-mb: 500MB
yarn_scheduler_maximum-allocation-mb: 16GB

这是一个单节点群集,总共具有32GB的内存和6个vCore。

现在,您可以从屏幕截图中看到“分配的内存”为8500MB。我想知道这是如何计算的。

还有一件事-指定的驱动程序内存为spark.driver.memory = 10g

1 个答案:

答案 0 :(得分:0)

分配的内存取决于:

  • 集群中可用的内存
  • 队列中可用的内存
  • vCores *(执行程序内存+执行程序开销)

在您的情况下,看起来您分配的内存受第三个选项限制。我猜您没有设置spark.executor.memory或spark.executor.memoryOverhead,因为要获取的内存与默认值一致。 The Spark docs显示默认值为:

  • spark.executor.memory = 1g
  • spark.executor.memoryOverhead = 0.1 *执行器内存至少384mb

这为每个内核提供了大约1400mb的内存,这是您的6个内核的倍数与您看到的“分配的内存”对齐