Compartir a través de


Límites y colas de simultaneidad en Apache Spark para Microsoft Fabric

Se aplica a:✅ Ingeniería de datos y ciencia de datos en Microsoft Fabric

Microsoft Fabric permite la asignación de unidades de proceso a través de la capacidad, que es un conjunto dedicado de recursos que está disponible en un momento dado para su uso. La capacidad define la aptitud de un recurso para realizar una actividad o generar resultados. Los diferentes elementos consumen capacidad diferente en un momento determinado. Microsoft Fabric ofrece capacidad a través de las SKU y las pruebas de Fabric. Para obtener más información, consulte ¿Qué es la capacidad?

Cuando los usuarios crean una capacidad de Microsoft Fabric en Azure, eligen un tamaño de capacidad en función de su tamaño de carga de trabajo de análisis. En Apache Spark, los usuarios obtienen dos núcleos virtuales de Apache Spark para cada unidad de capacidad que reservan como parte de su SKU.

Una unidad de capacidad = dos núcleos virtuales de Spark

Una vez que hayan adquirido la capacidad, los administradores pueden crear áreas de trabajo dentro de la capacidad en Microsoft Fabric. Los núcleos virtuales de Spark asociados a la capacidad se comparten entre todos los elementos basados en Apache Spark, como cuadernos, definiciones de trabajos de Apache Spark y almacenes de lago de datos creados en estas áreas de trabajo.

Limitación de simultaneidad y puesta en cola

Spark para Fabric aplica un mecanismo de limitación y cola basado en núcleos, donde los usuarios pueden enviar trabajos en función de las SKU de capacidad de Fabric compradas. El mecanismo de puesta en cola es una cola sencilla basada en FIFO, que comprueba las ranuras de trabajo disponibles y vuelve a intentar automáticamente los trabajos una vez que la capacidad esté disponible.

Cuando los usuarios envían trabajos de cuaderno o almacén de lago de datos (como Cargar en tabla) y la capacidad está en utilización máxima (debido a trabajos simultáneos que usan todos los núcleos virtuales de Spark), reciben el siguiente error:

HTTP Response code 430: This Spark job can't be run because you have hit a Spark compute or API rate limit. To run this Spark job, cancel an active Spark job through the Monitoring hub, or choose a larger capacity SKU or try again later.

Con la puesta en cola habilitada, los trabajos de cuaderno desencadenados desde capacidad, programador de trabajos y definiciones de trabajos de Spark se agregan a la cola y se reintentan automáticamente cuando hay capacidad está disponible.

Nota:

La expiración de la cola se establece en 24 horas a partir de la hora de envío del trabajo. Después de este período, los trabajos se quitan de la cola y se deben volver a enviar manualmente.

Las capacidades de Fabric también están habilitadas con expansión, lo que le permite consumir hasta 3 veces el número de núcleos virtuales de Spark que ha adquirido. Esta ráfaga ayuda a mejorar la simultaneidad al permitir que se ejecuten más trabajos en paralelo.

Nota:

El factor de expansión aumenta el número total de núcleos virtuales de Spark para la simultaneidad y se puede aprovechar mediante un único trabajo, si el grupo de Spark está configurado con un mayor número de núcleos.
En otras palabras, la configuración del grupo determina los núcleos máximos que puede usar un trabajo, no solo la asignación de SKU base.

Ejemplo

Si tiene una SKU F64 con un máximo de 384 núcleos virtuales de Spark con factor de expansión:

  • Puede configurar un grupo de inicio o personalizado con hasta 384 núcleos virtuales de Spark.
  • Si un administrador del área de trabajo crea tal grupo, un trabajo individual de Spark (por ejemplo, un cuaderno, una definición de trabajo o una trabajo de almacén de lago de datos) puede usar todos los 384 núcleos virtuales.
  • Ejemplo: un grupo con Medium nodos (8 núcleos virtuales cada uno) y 48 nodos máximos = 384 núcleos virtuales.

Sugerencia

Para maximizar el rendimiento del trabajo, confirme que el grupo de áreas de trabajo esté configurado con un tamaño y una cantidad suficientes de nodos.

Límites de SKU de capacidad de Spark

SKU de capacidad de Fabric SKU de Power BI equivalente Núcleos virtuales de Spark Número máximo de núcleos virtuales de Spark con factor de ráfaga Límite de cola
F2 - 4 20 4
F4 - 8 veinticuatro 4
F8 - 16 48 8
F16 - 32 96 16
F32 - 64 192 32
F64 P1 128 384 64
F128 P2 256 768 128
F256 P3 512 1536 256
F512 P4 1024 3072 512
F1024 - 2048 6144 1024
F2048 - 4096 12288 2048
Capacidad de prueba P1 128 128 N/D

Importante

La tabla solo se aplica a los trabajos de Spark que se ejecutan con la capacidad de Fabric. Con la facturación por escalado automático habilitada, los trabajos de Spark se ejecutan por separado de la capacidad de Fabric, evitando así la saturación o el ajuste. El total de núcleos virtuales de Spark será el doble de las unidades de capacidad máximas establecidas en la configuración de escalabilidad automática.

Cálculo de ejemplo

  • Una SKU F64 ofrece 128 núcleos virtuales de Spark.
  • Con un factor de ráfaga de 3, admite hasta 384 núcleos virtuales de Spark para la ejecución simultánea.
  • Si un grupo está configurado con los 384 núcleos virtuales completos, un único trabajo puede usarlos todos, suponiendo que ningún otro trabajo consuma capacidad.
  • Ejemplo: 3 trabajos con 128 núcleos virtuales cada uno puede ejecutarse simultáneamente O 1 trabajo mediante 384 núcleos virtuales.

Nota:

Los trabajos tienen un período de expiración de cola de 24 horas, después del cual se cancelan, y los usuarios deben volver a enviarlos para la ejecución.

La limitación de Spark para Fabric no tiene límites arbitrarios basados en trabajos y la limitación solo se basa en el número de núcleos permitidos por la SKU de capacidad de Fabric comprada. La admisión de trabajos predeterminada es un control de admisión optimista, donde los trabajos se admiten en función de sus requisitos básicos mínimos. Más información: Admisión y administración de trabajos.

Si se selecciona la opción de grupo predeterminado (Grupo de inicio) para el área de trabajo, en la tabla siguiente se enumeran los límites máximos de trabajo de simultaneidad.

Más información: Configuración de grupos de inicio.

Los administradores pueden configurar sus grupos de Apache Spark para utilizar el máximo de núcleos de Spark disponibles en la capacidad, incluido el factor de ráfaga de 3× que ofrece Fabric para la ejecución simultánea. Por ejemplo, un administrador del área de trabajo con una capacidad de F64 Fabric puede configurar su grupo de Spark (grupo de inicio o grupo personalizado) para usar hasta 384 núcleos virtuales de Spark mediante:

Establecer el número máximo de nodos del grupo de inicio en 48 (con nodos medianos = 8 núcleos virtuales cada uno) o

Configurar un grupo personalizado mediante nodos más grandes (por ejemplo, XXLarge = 64 núcleos virtuales cada uno) con un recuento de nodos adecuado para alcanzar la capacidad deseada.

Con esta configuración, un único trabajo de Spark puede consumir toda la capacidad de ráfaga, que es ideal para el procesamiento de datos a gran escala que prioriza el rendimiento.

Nuevo: control de ampliación a nivel de tareas a través del Portal de Administración Los administradores de capacidad ahora tienen control sobre cómo habilitar o deshabilitar la ampliación a nivel de tareas mediante una nueva configuración en el Portal de Administración.

Vaya a portal de administración → configuración de capacidad → pestaña Ingeniería y ciencia de datos.

Usa el nuevo interruptor "Deshabilitar Job-Level Ráfaga" para evitar que un único trabajo de Spark consuma toda la capacidad de ráfaga disponible.

Nota:

Cuando la expansión de nivel de trabajo está deshabilitada, el motor de Spark exige que ningún solo trabajo pueda usar toda la capacidad disponible (incluidos los núcleos de ráfaga). Esto garantiza que la capacidad permanece disponible para trabajos simultáneos, lo que mejora el rendimiento y la simultaneidad multiusuario.

Esta característica es especialmente útil en entornos multiusuario o de alta concurrencia, donde las cargas de trabajo deben equilibrarse entre varios equipos y procesos. Los administradores pueden ajustar esta configuración en función de si la capacidad está optimizada para el máximo rendimiento de trabajos (sobrecarga habilitada) o para una mayor simultaneidad y equidad (sobrecarga deshabilitada).

Escenarios de ejemplo con expansión de capacidad habilitada (valor predeterminado): un trabajo de notebook por lotes grande puede consumir todos los 384 núcleos virtuales de Spark en una capacidad F64, suponiendo que no se estén ejecutando otros trabajos.

Expansión deshabilitada: un trabajo puede limitarse al límite de núcleo base (por ejemplo, 128 núcleos virtuales de Spark para F64), lo que permite que otros trabajos se inicien simultáneamente.

Sugerencia

En el caso de los equipos con diversos tipos de trabajo (ETL, ML, ad hoc), deshabilitar la expansión a nivel de tarea puede ayudar a evitar la monopolización de la capacidad y reducir los retrasos en las colas de trabajos.