3

Spot 实例可以以较低的价格使用云中的免费资源,但是如果云需求增加,您的资源将被释放。只要您可以放弃一些已完成的工作,这对于非关键工作负载非常有用。更多信息2 3

Databricks 可以在 AWS 上运行 Spot 实例,但没有关于如何在 Azure 上运行的文档。

是否可以在 Azure Spot 实例上运行 Databricks 集群?

4

1 回答 1

4

是的,可以,但不能使用 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_AZUREspot_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 方法进行配置。

于 2021-03-04T18:21:16.113 回答