PySpark:如何停止零活动任务的执行者?

PySpark:如何停止零活动任务的执行者?,pyspark,Pyspark,我使用CPU网格运行PySpark,该网格有许多主机,每个主机有几个内核。当我启动一个框架时,许多任务可以分配给单个主机。我注意到,当主机上的所有任务都完成时,主机仍将保留一个CPU,直到框架完成。为什么会这样?是否可以更改此行为,使其不保留没有关联任务的内核 我不确定你的要求是否可行。不过,其行为的原因很简单。由于重新初始化执行器的成本更高,因此在确保应用程序成功结束之前,它不希望关闭一个执行器。另外,如果在其他节点上出现任务失败/任务执行缓慢的情况,空闲的执行器将用于重新执行丢失/运行缓慢的

我使用CPU网格运行PySpark,该网格有许多主机,每个主机有几个内核。当我启动一个框架时,许多任务可以分配给单个主机。我注意到,当主机上的所有任务都完成时,主机仍将保留一个CPU,直到框架完成。为什么会这样?是否可以更改此行为,使其不保留没有关联任务的内核

我不确定你的要求是否可行。不过,其行为的原因很简单。由于重新初始化执行器的成本更高,因此在确保应用程序成功结束之前,它不希望关闭一个执行器。另外,如果在其他节点上出现任务失败/任务执行缓慢的情况,空闲的执行器将用于重新执行丢失/运行缓慢的任务。感谢您提供的信息。不过,对于我来说,这些闲置的内核最终是一个巨大的浪费。假设我有10000个任务。1000在一开始就被发射。在我的Mesos调度器中,使用更少内核的框架具有更高的优先级。因此,一旦完成了这1000个任务,假设500个任务(每个主机一个)被保留在没有活动任务的主机上。这降低了我的优先级,所以我只得到了少量的内核。因此,非活动内核的数量很快就会高于活动内核的数量。我在想一个解决方案是停止持有不活跃的内核。还有其他想法吗?我不确定你的要求是否可行。不过,其行为的原因很简单。由于重新初始化执行器的成本更高,因此在确保应用程序成功结束之前,它不希望关闭一个执行器。另外,如果在其他节点上出现任务失败/任务执行缓慢的情况,空闲的执行器将用于重新执行丢失/运行缓慢的任务。感谢您提供的信息。不过,对于我来说,这些闲置的内核最终是一个巨大的浪费。假设我有10000个任务。1000在一开始就被发射。在我的Mesos调度器中,使用更少内核的框架具有更高的优先级。因此,一旦完成了这1000个任务,假设500个任务(每个主机一个)被保留在没有活动任务的主机上。这降低了我的优先级,所以我只得到了少量的内核。因此,非活动内核的数量很快就会高于活动内核的数量。我在想一个解决方案是停止持有不活跃的内核。还有其他想法吗?