在给定Client实例的情况下,是否可以关闭dask.distributed集群?

时间:2018-06-19 00:50:48

标签: distributed dask

如果我有一个distributed.Client实例,我可以用它来关闭远程集群吗?即杀死所有工人并关闭调度程序?

如果使用Client实例无法做到这一点,除了手动查杀每个远程进程之外还有其他方法吗?

1 个答案:

答案 0 :(得分:3)

没有专门的客户端功能。

调度程序具有close()方法,您可以使用run_on_scheduler来调用该方法

c.run_on_scheduler(lambda dask_scheduler=None: 
    dask_scheduler.close() & sys.exit(0))

这将告诉工作人员断开连接和关闭,并在终止过程之前关闭所有连接。请注意,这会在客户端中引发错误,因为连接断开而没有回复。可能还有更优雅的方式。

请注意,正确的实现方式可能是与其中一个部署集群管理器进行交互。例如,LocalCluster有一个面向用户的close()方法,您可以直接调用该方法。