我在10个工作节点集群上启用了动态分配。我正在运行测试以更好地理解spark如何管理内存。
根据Spark Resource Manager,每个工作节点有8个vCores和12g
可用内存。我决定将spark.executor.memory
调到1g
并将执行器核心数设置为4
。
从这个配置开始,我希望每个工作节点都能从2
获得8 vCores / 4 executor cores = 2 executors
个执行器。
但是,我从资源管理器获得以下分发:
正如您所看到的,不同的节点使用不同数量的执行程序,从2
一直到8
,总计39 executors
。您如何可靠地预测Spark在启用动态分配时将为您提供多少执行程序?