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 VM,您可以使用 dask_cloudprovider.azure.AzurePreemptibleWorkerPlugin
来实现此功能。它可用于任何在 Azure VM 上运行工作进程的集群,而不仅仅是使用 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())