Sdílet prostřednictvím


Přepsání nastavení clusteru v balíčcích prostředků Databricks

Tento článek popisuje, jak přepsat nastavení pro clustery Azure Databricks v sadách prostředků Databricks. Podívejte se , co jsou sady prostředků Databricks?

V konfiguračních souborech sady Azure Databricks se můžete připojit k nastavení clusteru v mapování nejvyšší úrovně resources s nastavením clusteru targets v mapování následujícím způsobem.

Pro úlohy použijte job_cluster_key mapování v definici úlohy k připojení nastavení clusteru v mapování nejvyšší úrovně resources s nastavením clusteru targets v mapování, například (tři tečky označují vynechaný obsah, pro stručnost):

# ...
resources:
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      # ...
      job_clusters:
        - job_cluster_key: <some-unique-programmatic-identifier-for-this-key>
          new_cluster:
            # Cluster settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      jobs:
        <the-matching-programmatic-identifier-for-this-job>:
          # ...
          job_clusters:
            - job_cluster_key: <the-matching-programmatic-identifier-for-this-key>
              # Any more cluster settings to join with the settings from the
              # resources mapping for the matching top-level job_cluster_key.
          # ...

Pokud je jakékoli nastavení clusteru definováno v mapování nejvyšší úrovně resources i targets mapování pro stejnou job_cluster_keyúroveň , má nastavení v targets mapování přednost před nastavením v mapování nejvyšší úrovně resources .

Pro kanály Delta Live Tables použijte label mapování v rámci cluster definice kanálu k připojení nastavení clusteru v mapování nejvyšší úrovně resources s nastavením clusteru targets v mapování, například (tři tečky označují vynechaný obsah, pro stručnost):

# ...
resources:
  pipelines:
    <some-unique-programmatic-identifier-for-this-pipeline>:
      # ...
      clusters:
        - label: default | maintenance
          # Cluster settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      pipelines:
        <the-matching-programmatic-identifier-for-this-pipeline>:
          # ...
          clusters:
            - label: default | maintenance
              # Any more cluster settings to join with the settings from the
              # resources mapping for the matching top-level label.
          # ...

Pokud je jakékoli nastavení clusteru definováno v mapování nejvyšší úrovně resources i targets mapování pro stejnou labelúroveň , má nastavení v targets mapování přednost před nastavením v mapování nejvyšší úrovně resources .

Příklad 1: Nová nastavení clusteru úloh definovaná v několika mapováních prostředků a bez konfliktů nastavení

V tomto příkladu spark_version se mapování nejvyšší úrovně zkombinuje s mapováním node_type_id na nejvyšší úrovni resources a num_workers v resources mapování targets definuje nastavení pro pojmenované job_cluster_keymy-cluster (tři tečky označují vynechaný obsah pro stručnost):

# ...
resources:
  jobs:
    my-job:
      name: my-job
      job_clusters:
        - job_cluster_key: my-cluster
          new_cluster:
            spark_version: 13.3.x-scala2.12

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          job_clusters:
            - job_cluster_key: my-cluster
              new_cluster:
                node_type_id: Standard_DS3_v2
                num_workers: 1
          # ...

Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující (tři tečky označují vynechaný obsah pro stručnost):

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "job_clusters": [
          {
            "job_cluster_key": "my-cluster",
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 1,
              "spark_version": "13.3.x-scala2.12"
            }
          }
        ],
        "...": "..."
      }
    }
  }
}

Příklad 2: Konfliktní nastavení nového clusteru úloh definovaného v několika mapováních prostředků

V tomto příkladu spark_versionjsou num_workers definovány jak v mapování nejvyšší úrovně resources , tak v resources mapování v targets. V tomto příkladu spark_versionresourcestargetsnum_workers mapování přednost před spark_version mapováním nejvyšší úrovně a num_workers v mapování nejvyšší úrovněresources, abyste definovali nastavení pro pojmenovaný job_cluster_keymy-cluster (tři tečky označují vynechaný obsah pro stručnost):

# ...
resources:
  jobs:
    my-job:
      name: my-job
      job_clusters:
        - job_cluster_key: my-cluster
          new_cluster:
            spark_version: 13.3.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          job_clusters:
            - job_cluster_key: my-cluster
              new_cluster:
                spark_version: 12.2.x-scala2.12
                num_workers: 2
          # ...

Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující (tři tečky označují vynechaný obsah pro stručnost):

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "job_clusters": [
          {
            "job_cluster_key": "my-cluster",
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 2,
              "spark_version": "12.2.x-scala2.12"
            }
          }
        ],
        "...": "..."
      }
    }
  }
}

Příklad 3: Nastavení clusteru kanálu definované v mapování více prostředků a bez konfliktů nastavení

V tomto příkladu node_type_id se v mapování nejvyšší úrovně resources zkombinuje s num_workersresources mapováním, aby targets bylo definováno nastavení pro pojmenované labeldefault (tři tečky označují vynechaný obsah, pro stručnost):

# ...
resources:
  pipelines:
    my-pipeline:
      clusters:
        - label: default
          node_type_id: Standard_DS3_v2

targets:
  development:
    resources:
      pipelines:
        my-pipeline:
          clusters:
            - label: default
              num_workers: 1
          # ...

Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující (tři tečky označují vynechaný obsah pro stručnost):

{
  "...": "...",
  "resources": {
    "pipelines": {
      "my-pipeline": {
        "clusters": [
          {
            "label": "default",
            "node_type_id": "Standard_DS3_v2",
            "num_workers": 1
          }
        ],
        "...": "..."
      }
    }
  }
}

Příklad 4: Konfliktní nastavení clusteru kanálu definované v mapování více prostředků

V tomto příkladu je definován jak v mapování nejvyšší úrovně, num_workers tak v resources mapování v targets.resources num_workersresources v mapování targets má přednost před num_workers mapováním nejvyšší úrovněresources, aby bylo definováno nastavení pro pojmenované labeldefault (tři tečky označují vynechaný obsah pro stručnost):

# ...
resources:
  pipelines:
    my-pipeline:
      clusters:
        - label: default
          node_type_id: Standard_DS3_v2
          num_workers: 1

targets:
  development:
    resources:
      pipelines:
        my-pipeline:
          clusters:
            - label: default
              num_workers: 2
          # ...

Při spuštění databricks bundle validate v tomto příkladu je výsledný graf následující (tři tečky označují vynechaný obsah pro stručnost):

{
  "...": "...",
  "resources": {
    "pipelines": {
      "my-pipeline": {
        "clusters": [
          {
            "label": "default",
            "node_type_id": "Standard_DS3_v2",
            "num_workers": 2
          }
        ],
        "...": "..."
      }
    }
  }
}