Compartir vía


Optimización del uso del clúster de canalizaciones declarativas de Spark de Lakeflow con escalado automático

En este artículo se describe cómo usar el escalado automático mejorado para optimizar las canalizaciones en Azure Databricks.

El escalado automático mejorado está habilitado de forma predeterminada para todas las canalizaciones nuevas. Las canalizaciones sin servidor también usan el escalado automático vertical. Consulte ¿Qué es el escalado automático vertical?.

En el caso de las canalizaciones sin servidor, el escalado automático mejorado siempre está activado y no se puede deshabilitar. Consulte Configuración de una canalización sin servidor.

¿Qué es el escalado automático mejorado?

La escalabilidad automática mejorada de Databricks optimiza el uso del clúster mediante la asignación automática de los recursos de clúster en función del volumen de la carga de trabajo, con un impacto mínimo en la latencia del procesamiento de datos de las canalizaciones.

El escalado automático mejorado mejora la funcionalidad de escalado automático del clúster de Azure Databricks con las siguientes características:

  • El escalado automático mejorado implementa la optimización de las cargas de trabajo de streaming y agrega mejoras para mejorar el rendimiento de las cargas de trabajo por lotes. El escalado automático mejorado optimiza los costos agregando o quitando máquinas a medida que cambia la carga de trabajo.
  • El escalado automático mejorado apaga de forma proactiva los nodos infrautilizados, a la vez que garantiza que no hay tareas erróneas durante el apagado. La característica de escalado automático de clústeres existente reduce verticalmente los nodos solo si el nodo está inactivo.

El escalado automático mejorado es el modo de escalado automático predeterminado al crear una nueva canalización en la interfaz de usuario de canalizaciones. Puede habilitar el escalado automático mejorado para las canalizaciones existentes editando la configuración de canalización en la interfaz de usuario. También puede habilitar el escalado automático mejorado al crear o editar canalizaciones con la API REST de canalizaciones.

¿Qué métricas usa el escalado automático mejorado para tomar una decisión de aumentar o disminuir la escala?

El escalado automático mejorado utiliza dos métricas para decidir si aumentar o disminuir la capacidad.

  • Uso de ranuras de tareas: esta es la proporción media del número de ranuras de tareas ocupadas con el total de ranuras de tareas disponibles en el clúster.
  • Tamaño de cola de tareas: este es el número de tareas en espera para ejecutarse en las ranuras de tareas.

Habilitación del escalado automático mejorado para una canalización

El escalado automático mejorado es el modo de escalado automático predeterminado al crear una nueva canalización en la interfaz de usuario de canalizaciones. Puede habilitar el escalado automático mejorado para las canalizaciones existentes editando la configuración de canalización en la interfaz de usuario. También puede habilitar el escalado automático mejorado al editar una canalización con el Editor de canalizaciones de Lakeflow.

Para usar el escalado automático mejorado, realice una de las acciones siguientes:

  • Establezca el modo de clúster en Escalado automático mejorado al editar la configuración de canalización en el Editor de canalizaciones de Lakeflow.
  • Agregue la configuración autoscale al clúster de tubería y establezca el campo mode en ENHANCED. Consulte Configurar el cálculo clásico para canalizaciones.

Use las instrucciones siguientes al configurar el escalado automático mejorado para canalizaciones de producción:

  • Deje la configuración Min workers en el valor predeterminado.
  • Configure el ajuste Max workers a un valor basado en el presupuesto y prioridad del proyecto.

En el ejemplo siguiente se configura un clúster de escalado automático mejorado con un mínimo de 5 trabajos y un máximo de 10 trabajos. max_workers debe ser mayor o igual que min_workers.

Nota:

  • El escalado automático mejorado solo está disponible para updates clústeres. Se utiliza el escalado automático heredado para los clústeres de maintenance.
  • La configuración autoscale tiene dos modos:
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

Si la canalización está configurada para la ejecución continua, se reiniciará automáticamente después de que cambie la configuración de escalado automático. Después del reinicio, espere un breve período de mayor latencia. Después de este breve período de mayor latencia, el tamaño del clúster debe actualizarse basado en la configuración de autoscale, y la latencia de la canalización debe volver a sus características de latencia anteriores.

Limitación de los costes para las canalizaciones que usan el escalado automático mejorado

Nota:

No se pueden configurar trabajadores para canalizaciones sin servidor.

Al establecer el parámetro Max workers en el panel Cómputo de canalizaciones, se establece un límite superior para el escalado automático. Reducir el número de trabajadores disponibles puede aumentar la latencia de algunas cargas de trabajo, pero evita que los costos de recursos de computación se disparen durante las operaciones intensivas en computación.

Databricks recomienda ajustar la configuración de trabajadores máximos para equilibrar el costo y la latencia según sus necesidades específicas.

El panel de Cómputo de la IU de Pipelines, donde puede establecer el número máximo de trabajadores para el autoescalado.

Supervisión del escalado automático mejorado habilitado para canalizaciones clásicas

Puede usar el registro de eventos en la interfaz de usuario de la canalización para supervisar las métricas de escalado automático mejoradas para canalizaciones clásicas. Los eventos de escalado automático mejorado tienen el tipo de evento autoscale. A continuación, se muestran eventos de ejemplo:

Event Message
Se ha iniciado la solicitud de cambio de tamaño del clúster Scaling [up or down] to <y> executors from current cluster size of <x>
La solicitud de cambio de tamaño del clúster es correcta Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
La solicitud de cambio de tamaño del clúster es parcialmente correcta Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
Se produjo un error en la solicitud de cambio de tamaño del clúster Achieved cluster size <x> for cluster <cluster-id> with status FAILED

También puede ver eventos de escalado automático mejorados consultando directamente el registro de eventos:

¿Qué es el escalado automático vertical?

Las pipelines serverless se suman al autoescalado horizontal proporcionado por el autoescalado mejorado de Databricks, asignando automáticamente los tipos de instancia más rentables que pueden ejecutar tu pipeline sin fallar debido a errores por falta de memoria. El escalado automático vertical aumenta verticalmente cuando se requieren tipos de instancia más grandes para ejecutar una actualización de canalización y también se reduce verticalmente cuando determina que la actualización se puede ejecutar con tipos de instancia más pequeños. El escalado automático vertical determina si los nodos de controlador, los nodos de trabajo o ambos se deben aumentar o reducir verticalmente.

El escalado automático vertical se usa para todas las canalizaciones sin servidor, incluidas las canalizaciones que usa Databricks SQL, vistas materializadas y tablas de transmisión.

El escalado automático vertical funciona mediante la detección de actualizaciones de canalización que han fallado debido a errores de memoria insuficiente. El escalado automático vertical asigna tipos de instancia más grandes cuando se detectan estos errores en función de los datos de memoria insuficiente recopilados de la actualización con errores. En el modo de producción, se inicia automáticamente una nueva actualización que usa los nuevos recursos de proceso. En el modo de desarrollo, los nuevos recursos de proceso se usan al iniciar manualmente una nueva actualización.

Si el escalado automático vertical detecta que la memoria de las instancias asignadas está subutilizada de forma coherente, reducirá verticalmente los tipos de instancia que se usarán en la siguiente actualización de canalización.