Invalidación de la configuración del clúster en agrupaciones de recursos de Databricks
En este artículo, se describe cómo invalidar la configuración de clústeres de Azure Databricks en agrupaciones de recursos de Databricks. Consulte ¿Qué son las agrupaciones de recursos de Databricks?
En los archivos de configuración de agrupación de Azure Databricks, puede unir la configuración del clúster en una asignación de nivel superior resources
con la configuración del clúster en una asignación targets
, como se indica a continuación.
Para los trabajos, use la asignación job_cluster_key
dentro de una definición de trabajo para unir la configuración del clúster en una asignación de nivel superior resources
con la configuración del clúster en una asignación targets
; por ejemplo (los puntos suspensivos indican contenido omitido, por motivos de brevedad):
# ...
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.
# ...
Si se define cualquier configuración de clúster en la asignación de nivel superior resources
y la asignación targets
para la misma job_cluster_key
, la configuración de la asignación targets
tiene prioridad sobre la configuración de la asignación de nivel superior resources
.
Para las canalizaciones de Delta Live Tables, use la asignación label
dentro de la cluster
de una definición de canalización para unir la configuración del clúster en una asignación de nivel superior resources
con la configuración del clúster en una asignación targets
; por ejemplo (los puntos suspensivos indican contenido omitido, por motivos de brevedad):
# ...
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.
# ...
Si se define cualquier configuración de clúster en la asignación de nivel superior resources
y la asignación targets
para la misma label
, la configuración de la asignación targets
tiene prioridad sobre la configuración de la asignación de nivel superior resources
.
Ejemplo 1: Nueva configuración del clúster de trabajo definida en varias asignaciones de recursos y sin conflictos de configuración
En este ejemplo, spark_version
en la asignación de nivel superior resources
se combina con node_type_id
y num_workers
en la asignación resources
de targets
para definir la configuración de los job_cluster_key
llamados my-cluster
(los puntos suspensivos indican contenido omitido, por brevedad):
# ...
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
# ...
Cuando ejecuta databricks bundle validate
para este ejemplo, el gráfico resultante es como el que se muestra a continuación (los puntos suspensivos indican contenido omitido, para abreviar):
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Ejemplo 2: Configuración del clúster de trabajo en conflicto definida en varias asignaciones de recursos
En este ejemplo, spark_version
y num_workers
se definen en la asignación de nivel superior resources
y en la asignación resources
en targets
. En este ejemplo, spark_version
y num_workers
en la asignación resources
de targets
tienen prioridad sobre spark_version
y num_workers
en la asignación de nivel superior resources
, para definir la configuración de los job_cluster_key
llamados my-cluster
(los puntos suspensivos indican contenido omitido, por motivos de brevedad):
# ...
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
# ...
Cuando ejecuta databricks bundle validate
para este ejemplo, el gráfico resultante es como el que se muestra a continuación (los puntos suspensivos indican contenido omitido, para abreviar):
{
"...": "...",
"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"
}
}
],
"...": "..."
}
}
}
}
Ejemplo 3: Configuración del clúster canalización definida en varias asignaciones de recursos y sin conflictos de configuración
En este ejemplo, node_type_id
en la asignación de nivel superior resources
se combina con num_workers
en la asignación resources
de targets
para definir la configuración de los label
llamados default
(los puntos suspensivos indican contenido omitido, por brevedad):
# ...
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
# ...
Cuando ejecuta databricks bundle validate
para este ejemplo, el gráfico resultante es como el que se muestra a continuación (los puntos suspensivos indican contenido omitido, para abreviar):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 1
}
],
"...": "..."
}
}
}
}
Ejemplo 4: Configuración del clúster de canalización en conflicto definida en varias asignaciones de recursos
En este ejemplo, num_workers
se define en la asignación de nivel resources
superior y en la asignación resources
en targets
. num_workers
en la asignación resources
de targets
tienen prioridad sobre num_workers
en la asignación de nivel superior resources
, para definir la configuración de los label
llamados default
(los puntos suspensivos indican contenido omitido, por motivos de brevedad):
# ...
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
# ...
Cuando ejecuta databricks bundle validate
para este ejemplo, el gráfico resultante es como el que se muestra a continuación (los puntos suspensivos indican contenido omitido, para abreviar):
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 2
}
],
"...": "..."
}
}
}
}