首页 > 解决方案 > “由于向上取整,YARN 容器的大小增加”加起来是火花开销内存还是火花执行器内存?

问题描述

据我了解,当 YARN 根据 spark 配置请求分配容器时,YARN 会自动将容器大小四舍五入为 'yarn.scheduler.minimum-allocation-mb' 的倍数。

例如,

yarn.scheduler.minimum-allocation-mb:2 GB

spark.executor.memory:4 GB

spark.yarn.executor.memory 开销:384 MB

Spark 执行器对 YARN 的总体内存要求为 [4 GB + 384 MB] = 4.384 GB

Spark 向 YARN 提出 4.384 GB 容器大小的请求,但 YARN 分配大小为 2 GB 的容器(yarn.scheduler.minimum-allocation-mb),因此在这种情况下,它返回大小为 6 GB 的容器(将 4.384 舍入为 6 )。因此 spark executor JVM 在 YARN 容器内以 6 GB 大小启动。

因此,原始 spark-executor-memory 请求为 = 4.384 GB,但 YARN 分配的内存为 = 6 GB

执行器大小增量 = 6 - 4.384 GB = 1.6 GB

我的问题是,据我了解,每个 spark 执行器整体内存增加了 1.6 GB,其中包括执行器内存和开销内存,整体 spark 执行器内存的哪一部分增加了 1.6 GB。是 spark.yarn.executor.memoryOverhead (或) spark.executor.memory 吗?spark 如何使用由于 YARN 舍入而获得的额外内存?

标签: apache-sparkhadoophadoop-yarnhortonworks-data-platformcloudera-manager

解决方案


推荐阅读