细粒度模式下的 Spark 会保留资源,即使它处于空闲状态并且不执行任何操作
Spark in fine-grained mode hold resources even it is idle and it doesn't perform any actions
我使用 Mesos 集群管理器以细粒度模式启动 Spark。
spark-shell.sh --conf 'spark.mesos.coarse=false' --executor-memory 20g --driver-memory 5g
而且我可以在 Mesos UI 上看到它不使用任何资源,这很好。然后我执行一些操作,在执行操作期间,Spark 使用所有集群资源,这也很好。
但是当操作完成后,Spark 仍然会永久保留一些 CPU 和内存。
为什么 Spark 在闲置且不执行任何操作时仍然需要一些资源,如果闲置如何释放所有资源?
尝试配置,例如spark.mesos.mesosExecutor.cores = 0.5
限制每个执行程序使用的核心数(在 fine-grained
模式下)。
您可以考虑降低 executor-memory
,具体取决于您的工作表现。
我使用 Mesos 集群管理器以细粒度模式启动 Spark。
spark-shell.sh --conf 'spark.mesos.coarse=false' --executor-memory 20g --driver-memory 5g
而且我可以在 Mesos UI 上看到它不使用任何资源,这很好。然后我执行一些操作,在执行操作期间,Spark 使用所有集群资源,这也很好。
但是当操作完成后,Spark 仍然会永久保留一些 CPU 和内存。
为什么 Spark 在闲置且不执行任何操作时仍然需要一些资源,如果闲置如何释放所有资源?
尝试配置,例如spark.mesos.mesosExecutor.cores = 0.5
限制每个执行程序使用的核心数(在 fine-grained
模式下)。
您可以考虑降低 executor-memory
,具体取决于您的工作表现。