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_key
my-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_version
jsou num_workers
definovány jak v mapování nejvyšší úrovně resources
, tak v resources
mapování v targets
. V tomto příkladu spark_version
resources
targets
má num_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_key
my-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_workers
resources
mapováním, aby targets
bylo definováno nastavení pro pojmenované label
default
(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_workers
resources
v mapování targets
má přednost před num_workers
mapováním nejvyšší úrovněresources
, aby bylo definováno nastavení pro pojmenované label
default
(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
}
],
"...": "..."
}
}
}
}