为管道配置传统计算

本页包含配置经典计算以用于 Lakeflow Spark 声明性管道的说明。 有关 JSON 架构的参考,请参阅 Pipeline API 参考中的 clusters 定义

若要创建在经典计算上运行的管道,用户必须先具有部署经典计算的权限,要么是不受限制的创建权限,要么access计算策略。 无服务器架构流水线不需要计算资源创建权限。 默认情况下,所有工作区用户都可以使用无服务器流水线。

注释

由于 Lakeflow Spark 声明性Pipelines运行时管理管道计算的生命周期并运行 Databricks Runtime 的自定义版本,因此无法在管道配置(如 Spark 版本或群集名称)中手动设置某些计算设置。 请参阅不可由用户设置的群集属性

为管道选择计算资源

若要从 Lakeflow Pipelines 编辑器为管道配置经典计算,请执行以下步骤:

  1. 单击“设置”。
  2. 在管道设置的 “计算 ”部分中,单击 “铅笔”图标。 编辑。
  3. 如果选中它,请取消选中 无服务器
  4. 对计算设置进行任何其他更改,然后单击“ 保存”。

这会配置管道以使用经典计算,并允许编辑计算设置,如下所示。

有关 Lakeflow Pipelines 编辑器的更多信息,请参阅 使用 Lakeflow Pipelines 编辑器开发并调试 ETL pipelines

选择计算策略

工作区管理员可以配置计算策略,为用户提供访问用于pipelines的经典计算资源。 计算策略是可选的。 如果缺少所需的计算权限,请与工作区管理员联系。 请参阅 定义 Lakeflow Spark 声明性管道计算的限制。

使用 Pipelines API 时,若要确保正确应用计算策略的默认值,请在 "apply_policy_default_values": true 定义中进行设置:

{
  "clusters": [
    {
      "label": "default",
      "policy_id": "<policy-id>",
      "apply_policy_default_values": true
    }
  ]
}

配置计算标记

可以将自定义标记添加到管道的经典计算资源。 使用标记可以监视组织中各种组使用的计算资源成本。 Databricks 将这些标记应用于云资源。 可以使用 群集标记 UI 设置或通过编辑管道的 JSON 配置来添加标记。

选择要运行管道的实例类型

默认情况下,Lakeflow Spark 声明性管道会为管道的驱动节点和计算节点选择实例类型。 可以选择配置实例类型。 例如,选择实例类型以提高管道性能,或者在运行管道时解决内存问题。

若要在 Lakeflow Pipelines 编辑器中创建或编辑管道时配置实例类型:

  1. 单击“设置”按钮。
  2. 在管道设置的“计算”部分中,单击铅笔图标。
  3. “高级设置”部分中,选择管道的工作者类型驱动类型实例类型。

为更新和维护群集配置单独的设置

每个声明性管道都有两个关联的计算资源:一个用于处理管道更新的更新群集和运行日常维护任务的维护群集。 默认情况下,计算配置适用于这两个群集。 使用相同设置应用于两个群集可以提高维护运行的可靠性,因为这确保了诸如存储位置的数据访问凭据等必要配置都已经运用于维护群集。

若要仅将设置应用于两个群集之一,请将 label 字段添加到设置 JSON 对象。 该字段有三个可能的值 label

  • maintenance:仅将设置应用于维护群集。
  • updates:仅将设置应用于更新群集。
  • default:将设置应用于更新和维护群集。 如果省略 label 字段,则为默认值。

如果存在冲突的设置,则带有 updatesmaintenance 标签的设置将覆盖使用 default 标签定义的设置。

注释

每日维护群集仅在特定情况使用。

  • Pipelines 存储在 Hive 元数据存储中。
  • 未接受无服务器计算服务条款的工作区中的管道。 如果需要接受条款的帮助,请联系 Databricks 代表。

示例:定义更新群集的设置

以下示例定义一个 Spark 配置参数,该参数仅添加到 updates 群集的配置中:

{
  "clusters": [
    {
      "label": "default",
      "autoscale": {
        "min_workers": 1,
        "max_workers": 5,
        "mode": "ENHANCED"
      }
    },
    {
      "label": "updates",
      "spark_conf": {
        "key": "value"
      }
    }
  ]
}

示例:为更新群集配置实例类型

为了避免向 maintenance 群集分配不必要的资源,此示例使用 updates 标签来仅设置 updates 群集的实例类型。

{
  "clusters": [
    {
      "label": "updates",
      "node_type_id": "Standard_D12_v2",
      "driver_node_type_id": "Standard_D3_v2",
      "...": "..."
    }
  ]
}

延迟计算关闭

若要控制群集关闭行为,可以使用开发或生产模式或使用管道配置中的 pipelines.clusterShutdown.delay 设置。 以下示例将 pipelines.clusterShutdown.delay 值设置为 60 秒:

{
  "configuration": {
    "pipelines.clusterShutdown.delay": "60s"
  }
}

启用 production 模式时,pipelines.clusterShutdown.delay 的默认值为 0 seconds。 如果启用 development 模式,默认值为 2 hours

注释

由于 Lakeflow Spark 声明性Pipelines计算资源在不使用时自动关闭,因此无法使用设置 autotermination_minutes 的计算策略。 这会导致错误。

创建一个单个计算节点

单个节点计算具有充当主节点和辅助角色的驱动程序节点。 这适用于使用少量数据或未分发的工作负荷。

若要创建单节点计算,请设置为 num_workers 0。 例如:

{
  "clusters": [
    {
      "num_workers": 0
    }
  ]
}