Compartir a través de


Límites de simultaneidad y puesta en cola 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 Apache Spark asociados a la capacidad se comparten entre todos los elementos basados en Apache Spark, como cuadernos, definiciones de trabajos de Spark y almacenes de lago 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 cuadernos y lagos de datos como la carga en la tabla cuando la capacidad está en su uso máximo debido a trabajos en ejecución simultáneos que utilizan todos los núcleos virtuales de Spark disponibles para su SKU de capacidad de Fabric adquirida, se limitan con el mensaje

Código de respuesta HTTP 430: Este trabajo de Spark no se puede ejecutar porque se ha alcanzado un límite de velocidad de proceso o API de Spark. Para ejecutar este trabajo de Spark, cancele un trabajo activo de Spark a través del centro de supervisión, elija una SKU de capacidad mayor o vuelva a intentarlo más adelante.

Con la puesta en cola habilitada, los trabajos de cuadernos desencadenados desde canalizaciones y el programador de trabajo y definiciones de trabajos de Spark se agregan a la cola y se reintentan automáticamente cuando se libera la capacidad. La expiración de la cola se establece en 24 horas a partir del envío del trabajo. Después de este periodo, los trabajos deberán volver a enviarse.

Las capacidades de Fabric están habilitadas con expansión, lo que le permite consumir núcleos de proceso adicionales más allá de lo que se ha adquirido para acelerar la ejecución de una carga de trabajo. Para las cargas de trabajo de Apache Spark, la expansión permite a los usuarios enviar trabajos con un total de 3X los núcleos virtuales de Spark adquiridos.

Nota:

El factor de expansión solo aumenta el número total de núcleos virtuales de Spark para ayudar con la simultaneidad, pero no aumenta los núcleos máximos por trabajo. Los usuarios no pueden enviar un trabajo que requiera más núcleos que lo que ofrece su capacidad de Fabric.

La siguiente sección enumera varios límites basados en núcleos para cargas de trabajo Spark basados en SKU de capacidad de Microsoft Fabric:

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 24 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

Cálculo de ejemplo: F64 SKU ofrece 128 núcleos virtuales de Spark. El factor de ráfaga aplicado para una SKU F64 es 3, lo que da un total de 384 núcleos virtuales de Spark. El factor de ráfaga solo se aplica para ayudar con la simultaneidad y no aumenta los núcleos máximos disponibles para un único trabajo de Spark. Esto significa que un único cuaderno o definición de trabajo de Spark o un trabajo de Lakehouse puede usar una configuración de grupo de 128 núcleos virtuales como máximo y 3 trabajos con la misma configuración se pueden ejecutar simultáneamente. Si los cuadernos usan una configuración de proceso más pequeña, se pueden ejecutar simultáneamente hasta que el uso máximo alcance el límite de 384 núcleos virtuales de Spark.

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 del trabajo.

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 de manera predeterminada será un control de admisión optimista, en el que los trabajos se admiten en función de sus requisitos mínimos de núcleos. Más información sobre la admisión optimista de trabajos 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 simultáneos de los trabajos.

Obtén más información sobre las configuraciones predeterminadas del grupo de inicio en función de la SKU de capacidad de Fabric en Configuración de grupos de inicio.

Ampliación en el nivel de trabajo

Los administradores pueden configurar sus grupos de Apache Spark para usar el máximo de núcleos de Spark con factor de ráfaga disponible para toda la capacidad. Por ejemplo, un administrador del área de trabajo que tenga su área de trabajo asociada a una capacidad F64 de Fabric ahora puede configurar su grupo de Spark (grupo de inicio o grupo personalizado) en 384 núcleos virtuales de Spark, donde los nodos máximos de grupos de inicio se pueden establecer en 48 o los administradores pueden configurar un grupo de tamaño extragrande (XX Large) con 6 nodos máximos.