Clusterinstellingen overschrijven in Databricks Asset Bundles
In dit artikel wordt beschreven hoe u de instellingen voor Azure Databricks-clusters in Databricks Asset Bundles overschrijft. Zie Wat zijn Databricks-assetbundels?
In Azure Databricks-bundelconfiguratiebestanden kunt u als volgt de clusterinstellingen koppelen aan een toewijzing op het hoogste niveau resources
met de clusterinstellingen in een targets
toewijzing.
Voor taken gebruikt u de job_cluster_key
toewijzing in een taakdefinitie om de clusterinstellingen in een toewijzing op het hoogste niveau resources
samen te voegen met de clusterinstellingen in een targets
toewijzing, bijvoorbeeld (weglatingstekens geven inhoud aan, voor beknoptheid):
# ...
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.
# ...
Als een clusterinstelling zowel in de toewijzing op het hoogste niveau resources
als de targets
toewijzing voor hetzelfde job_cluster_key
is gedefinieerd, heeft de instelling in de targets
toewijzing voorrang op de instelling in de toewijzing op het hoogste niveau resources
.
Voor Delta Live Tables-pijplijnen gebruikt u de label
toewijzing binnen de cluster
definitie van een pijplijn om de clusterinstellingen samen te voegen in een toewijzing op het hoogste niveau resources
met de clusterinstellingen in een targets
toewijzing, bijvoorbeeld (weglatingstekens geven aan dat inhoud wordt weggelaten, voor beknoptheid):
# ...
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.
# ...
Als een clusterinstelling zowel in de toewijzing op het hoogste niveau resources
als de targets
toewijzing voor hetzelfde label
is gedefinieerd, heeft de instelling in de targets
toewijzing voorrang op de instelling in de toewijzing op het hoogste niveau resources
.
Voorbeeld 1: Nieuwe taakclusterinstellingen gedefinieerd in meerdere resourcetoewijzingen en zonder instellingenconflicten
In dit voorbeeld spark_version
wordt in de toewijzing op het hoogste niveau resources
gecombineerd met node_type_id
en num_workers
in de resources
toewijzing targets
om de instellingen voor de job_cluster_key
benoemde naam my-cluster
te definiëren (weglatingstekens geven de weggelaten inhoud aan voor beknoptheid):
# ...
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
# ...
Wanneer u voor dit voorbeeld uitvoert databricks bundle validate
, ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Voorbeeld 2: Conflicterende nieuwe taakclusterinstellingen gedefinieerd in meerdere resourcetoewijzingen
In dit voorbeeld spark_version
num_workers
worden zowel in de toewijzing op het hoogste niveau resources
als in de resources
toewijzing in targets
. In dit voorbeeld hebben drie puntjes voorrang op en num_workers
in de toewijzing spark_version
targets
op het hoogste niveau resources
om de instellingen voor de job_cluster_key
benoemde naam my-cluster
te definiëren (weglatingstekens geven aan dat inhoud wordt weggelaten, voor beknoptheid):resources
num_workers
spark_version
# ...
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
# ...
Wanneer u voor dit voorbeeld uitvoert databricks bundle validate
, ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Voorbeeld 3: Instellingen voor pijplijnclusters die zijn gedefinieerd in meerdere resourcetoewijzingen en zonder instellingenconflicten
In dit voorbeeld wordt node_type_id
in de toewijzing op het hoogste niveau resources
gecombineerd met num_workers
in de resources
toewijzing targets
om de instellingen voor de label
benoemde naam default
te definiëren (weglatingstekens geven aan dat inhoud wordt weggelaten, voor beknoptheid):
# ...
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
# ...
Wanneer u voor dit voorbeeld uitvoert databricks bundle validate
, ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 1
}
],
"...": "..."
}
}
}
}
Voorbeeld 4: Conflicterende pijplijnclusterinstellingen gedefinieerd in meerdere resourcetoewijzingen
In dit voorbeeld num_workers
wordt zowel in de toewijzing op het hoogste niveau resources
als in de resources
toewijzing in targets
. num_workers
in de toewijzing in targets
num_workers
de resources
toewijzing boven in de toewijzing op het hoogste niveauresources
, om de instellingen voor de label
benoemde naam default
te definiëren (weglatingstekens geven aan dat inhoud wordt weggelaten, voor beknoptheid):
# ...
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
# ...
Wanneer u voor dit voorbeeld uitvoert databricks bundle validate
, ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 2
}
],
"...": "..."
}
}
}
}