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())