如何在 Databricks 上使用 Azure Spot 实例

How to use Azure Spot instances on Databricks

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

Databricks 有可能 运行 spot instances on AWS 但没有关于如何在 Azure 上做到这一点的文档。

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

是的,可以但不能使用 Databricks UI。要在 Databricks 上使用 Azure spot 实例,您需要使用 databricks cli.

Note

With the cli tool is it possible to administrate -create, edit, delete- clusters and instances-pools. However, to simplify the process, I'll focus on editing an existing cluster.

您可以使用 pip install databricks-cli 安装 databricks cli 并使用 databricks configure --token 配置您的凭据。如需更多信息,请访问 databricks documentation.

运行 命令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

现在,每次启动集群时,工作人员都会现场instances.To确认这一点,您可以转到分配在数据块管理的资源组中的工作虚拟机内的配置选项卡。您将看到 Azure 现货处于活动状态并且价格已配置。

AWS 上的 Databricks 对于 availability 字段有 more configuration options 之类的 SPOT。但是,在文档发布之前,我们需要等待或使用试错法进行配置。