Spot 实例可以以较低的价格使用云中的免费资源,但是如果云需求增加,您的资源将被释放。只要您可以放弃一些已完成的工作,这对于非关键工作负载非常有用。更多信息2 3
Databricks 可以在 AWS 上运行 Spot 实例,但没有关于如何在 Azure 上运行的文档。
是否可以在 Azure Spot 实例上运行 Databricks 集群?
Spot 实例可以以较低的价格使用云中的免费资源,但是如果云需求增加,您的资源将被释放。只要您可以放弃一些已完成的工作,这对于非关键工作负载非常有用。更多信息2 3
Databricks 可以在 AWS 上运行 Spot 实例,但没有关于如何在 Azure 上运行的文档。
是否可以在 Azure Spot 实例上运行 Databricks 集群?
是的,可以,但不能使用 Databricks UI。要在 Databricks 上使用 Azure 现场实例,您需要使用databricks cli。
笔记
使用 cli 工具可以管理创建、编辑、删除集群和实例池。但是,为了简化流程,我将专注于编辑现有集群。
您可以使用安装 databricks clipip install databricks-cli
并使用databricks configure --token
. 有关更多信息,请访问databricks 文档。
运行命令datbricks clusters list
知道要修改的集群的ID:
$ datbricks clusters list
0422-112415-fifes919 Big Spark3 TERMINATED
0612-341234-jails230 Normal Spark3 TERMINATED
0212-623261-mopes727 Small 7.6 TERMINATED
就我而言,我有 3 个集群。第一列是集群 ID,第二列是集群的名称。最后一列是状态。
该命令databricks cluster get
以 json 格式生成集群配置。让我们生成json文件来修改它:
databricks clusters get --cluster-id 0422-112415-fifes919 > /tmp/my_cluster.json
该文件包含与集群相关的所有配置,例如名称、实例类型、所有者……在我们的例子中,我们正在寻找该azure_attributes
部分。您将看到类似于以下内容的内容:
...
"azure_attributes": {
"first_on_demand": 1,
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": -1.0
},
...
我们需要改变availability
我们SPOT_WITH_FALLBACK_AZURE
的spot_bid_max_price
出价。使用您喜欢的工具编辑文件。结果应该是这样的:
...
"azure_attributes": {
"first_on_demand": 1,
"availability": "SPOT_WITH_FALLBACK_AZURE",
"spot_bid_max_price": 0.4566
},
...
修改后,只需使用新的配置文件更新集群databricks clusters edit
:
databricks clusters edit --json-file /tmp/my_cluster.json
现在,每次启动集群时,workers 都会成为 Spot 实例。要确认这一点,您可以转到分配在 databricks 管理的资源组中的 worker VM 内的配置选项卡。您将看到 Azure 现货处于活动状态并配置了价格。
AWS 上的 Databricks 具有更多配置选项,例如SPOT
用于该availability
字段。但是,在文档发布之前,我们需要等待或使用 try-error 方法进行配置。