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