Azure Databricks 中的经典计算资源使用灵活的节点类型,这允许计算资源在指定的实例类型不可用时回退到备用兼容的实例类型。
此行为通过在计算启动期间减少容量故障(库存错误)来提高计算启动可靠性。 对于具有回退的现成实例,灵活的节点类型可以在回退到按需实例之前尝试在不同实例类型之间多次获取实例。 这会导致更多实例以“抢占式”(spot)模式而不是“按需”(on-demand)模式运行,从而减少总计算成本。
灵活节点类型的工作原理
启动计算资源时,云提供商有时会耗尽指定实例类型的容量。 这会导致库存错误:
CLOUD_PROVIDER_RESOURCE_STOCKOUT
虽然这些错误对于现成实例更为常见,但它们也可能发生在按需实例中。
启用灵活节点类型后,Azure Databricks 会自动生成或使用兼容的实例类型的指定回退列表。 如果首选实例类型不可用,Azure Databricks 会尝试获取这些备份实例类型,而不是立即失败。
在工作区中启用灵活的节点类型
工作区管理员可以在其工作区管理员设置中启用灵活的节点类型。 启用后,除非显式禁用,否则工作区中的所有新经典计算资源都将使用灵活的节点类型:
- 以工作区管理员身份转到设置页。
- 单击“计算”选项卡。
- 切换 “启用自动灵活节点类型 ”设置:
- 已启用:除非显式禁用,否则所有新的经典计算资源都会自动使用灵活的节点类型。
-
已禁用:经典计算资源仅在计算资源配置中显式配置
node_type_flexibility时使用灵活的节点类型。
此工作区范围的设置不会影响现有计算资源。 禁用后,用户仍可以通过显式配置具有自定义回退列表的 worker_node_type_flexibility 或 driver_node_type_flexibility 字段来为单个计算资源配置灵活的节点类型。 为了防止用户配置这些字段,工作区管理员可以使用计算策略。 请参阅 灵活节点类型策略示例。
指定自定义回退列表
在工作区中启用灵活节点类型时,Azure Databricks 会自动为新的计算资源生成兼容实例类型的回退列表。
如果不想使用自动生成的回退列表,可以改为指定自己的回退列表。 此外,如果工作区中禁用了灵活的节点类型,仍可以为计算资源指定自定义回退列表。 只有某些实例类型兼容。 请参阅 回退实例类型要求。 有关兼容实例类型的参考,请参阅 灵活的节点类型兼容性参考。
仅当使用 API 配置计算时,才支持自定义回退列表。 请参阅 群集 API 参考文档。
例如,以下配置指定计算资源将回退到哪些实例类型(如果需要):
"worker_node_type_flexibility": {
"alternate_node_type_ids": [
"Standard_L8s_v2"
]
},
"driver_node_type_flexibility": {
"alternate_node_type_ids": [
"Standard_L8s_v2"
]
},
回退实例类型要求
回退实例类型必须与计算的首选实例类型兼容。 回退实例类型列表必须满足以下要求:
- 与首选实例类型具有相同 vCPU 数量和内存(回退实例的内存必须是首选实例类型内存的 100% 到 110% 之间)
- 与首选实例类型的本地磁盘数量和磁盘大小相同
- 与首选实例类型相同的 CPU 体系结构(所有 ARM 或所有 x86)
- 与首选实例类型相同的 OS 映像和 Photon 支持
- 不支持 GPU 实例类型(不支持 GPU)
- 最多 5 个唯一回退实例类型
- 所有实例类型必须具有一致的存储支持:或者所有都支持PREMIUM_LRS存储,或者它们都不支持。
将灵活节点类型与池配合使用
还可以自定义池的备用列表。 在 池 API 中,将 node_type_flexibility 字段设置为指定回退实例类型。 例如:
"node_type_flexibility": {
"alternate_node_type_ids": ["Standard_L8s_v2"]
}
池不支持使用可变实例类型来维持最低空闲数量。 当尝试从池中启动计算时,池只能使用回退实例类型来启动 VM。 预热 minIdle 计数时仅采用首选的实例类型。
查看获取的实例类型
使用灵活的节点类型时,计算资源可能包含不同的实例类型组合。 所有回退实例类型都与首选类型兼容,维护相同的 vCPU 计数、内存、磁盘布局、CPU 体系结构和 OS 映像,以确保工作负荷正常运行。
可以查看为计算资源获取的实例类型:
- 在计算详细信息页中,单击 “终止 ”按钮旁边的三个点,然后选择“ 查看 JSON”。
- 查看每个执行器的
node_type_id字段,以识别正在运行的实例类型。
还可以使用 “获取群集信息 API ”以编程方式检索此信息。 此外,有权访问系统表的用户可以查询表 node_timelines 。 请参阅节点时间线表架构。
在计算资源上禁用灵活的节点类型
注释
Databricks 建议保持启用灵活的节点类型,除非对特定实例类型有严格的要求。
如果希望计算启动失败而不是回退到备用实例类型,则可以在单个计算资源级别禁用灵活的节点行为。 仅在使用群集 API 时才支持此功能。 若要禁用灵活节点类型,请在计算配置中将灵活节点类型字段设置为空。 例如:
"worker_node_type_flexibility": {
"alternate_node_type_ids": []
},
"driver_node_type_flexibility": {
"alternate_node_type_ids": []
}