Dask Cloud Provider

Dask Cloud Provider

Dask 的原生云集成。

此软件包包含开源工具,可帮助您在云上部署和操作 Dask 集群。它包含集群管理器,可以帮助您使用原生云资源(如虚拟机或容器)启动集群;它包含可在云上运行的任何集群中使用的工具和插件,是 Dask 云部署文档的重要来源。

它绝不是在云上运行 Dask 的“完整”或“唯一”方式,请查看替代方案页面以获取更多工具。

集群管理器

此软件包提供了用于在各种云平台上构建和管理临时 Dask 集群的类。

Dask Cloud Provider 是部署 Dask 集群的众多选项之一,有关其他选项的概述,请参阅 Dask 文档中的部署 Dask

要使用云提供商集群管理器,您可以导入它并实例化它。实例化类将导致为您创建云资源。

from dask_cloudprovider.aws import FargateCluster
cluster = FargateCluster(
    # Cluster manager specific config kwargs
)

然后,您可以使用该集群对象构建一个 Dask 客户端来使用集群。

from dask.distributed import Client
client = Client(cluster)

连接到集群后,您可以继续使用 Dask,所有计算都将在您的云资源上进行。

完成后,请务必关闭您的集群以关闭您拥有的任何云资源并终止任何费用。

cluster.close()

警告

如果在销毁集群对象时未调用 cluster.close(),集群管理器将尝试在垃圾回收时自动移除悬挂的云资源,但这不能保证。

要在完成集群使用后隐式关闭集群,您可以选择通过上下文管理器构造集群管理器。但这将导致每次运行此代码时都创建和销毁整个集群。

from dask_cloudprovider.aws import FargateCluster
from dask.distributed import Client

with FargateCluster(...) as cluster:
    with Client(cluster) as client:
        # Do some Dask things

插件

Dask 组件(如调度器和工作节点)可以从云感知中受益。本项目包含扩展这些组件的插件和工具。

一个例子是让工作节点在运行于临时/竞价实例时检查终止警告,并开始将数据迁移到其他工作节点。

对于 Azure 虚拟机,您可以使用 dask_cloudprovider.azure.AzurePreemptibleWorkerPlugin 来实现这一点。它可以在任何有工作节点运行在 Azure 虚拟机上的集群中使用,而不仅仅是使用 dask_cloudprovider.azure.AzureVMCluster 创建的集群。

from distributed import Client
client = Client("<Any Dask cluster running on Azure VMs>")

from dask_cloudprovider.azure import AzurePreemptibleWorkerPlugin
client.register_worker_plugin(AzurePreemptibleWorkerPlugin())