¿Qué es el proceso de Spark en Microsoft Fabric?

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

Las experiencias de Ingeniería de datos y Ciencia de datos de Microsoft Fabric funcionan en una plataforma de proceso Spark totalmente administrada. Esta plataforma está diseñada para ofrecer una velocidad y eficiencia inigualables. Con los grupos de inicio, puede esperar una rápida inicialización de la sesión de Spark, normalmente en 5 a 10 segundos, sin necesidad de configuración manual. También dispone de flexibilidad para personalizar los grupos de Spark según sus requisitos específicos de ingeniería y ciencia de datos. La plataforma permite una experiencia de análisis optimizada y adaptada.

Imagen de una plataforma de proceso Spark con grupos de inicio y grupos Spark personalizados.

Grupos de inicio

Los grupos de inicio son una manera rápida y sencilla de usar Spark en la plataforma de Microsoft Fabric en cuestión de segundos. Puede usar las sesiones de Spark de inmediato, en lugar de esperar a que Spark configure los nodos, lo que le ayuda a hacer más con los datos y obtener información más rápido.

Imagen de una tabla que muestra la configuración de la piscina de iniciación.

Los grupos de inicio tienen clústeres de Spark siempre activados y listos para las solicitudes. Usan nodos medianos que se escalan verticalmente de forma dinámica en función de las necesidades del trabajo de Spark.

Diagrama del diseño de alto nivel de los grupos de arranque.

Los grupos de inicio también tienen una configuración predeterminada que le permite instalar bibliotecas rápidamente sin ralentizar la hora de inicio de la sesión. Sin embargo, si desea utilizar propiedades o bibliotecas Spark personalizadas adicionales de su área de trabajo o configuración de capacidad, Spark tardará más tiempo en obtener los nodos por usted. En lo que respecta a la facturación y el consumo de capacidad, se le cobra por el consumo de capacidad cuando empieza a ejecutar la definición de trabajo de bloc de notas o Spark. No se le cobrará por el tiempo que los clústeres estén inactivos en el grupo.

Diagrama que muestra las etapas de alto nivel en la facturación de las piscinas de iniciación.

Por ejemplo, si envía un trabajo de bloc de notas a un grupo de inicio, solo se le facturará por el periodo de tiempo en el que la sesión de bloc de notas esté activa. El tiempo facturado no incluye el tiempo de inactividad ni el tiempo empleado en personalizar la sesión con el contexto Spark.

Grupos de Spark

Un grupo de Spark es una manera de indicar a Spark qué tipo de recursos necesita para las tareas de análisis de datos. Puede asignar un nombre al grupo de Spark y elegir el número y el tamaño de los nodos (las máquinas que realizan el trabajo). También puede indicar a Spark cómo ajustar el número de nodos en función del trabajo que tenga. La creación de un grupo de Spark es gratuita; solo paga cuando ejecuta un trabajo de Spark en el grupo y, a continuación, Spark configura los nodos por usted.

Si no utiliza su grupo de Spark durante 2 minutos después de que expire su sesión, su grupo de Spark será desasignado. Este período de tiempo de expiración de sesión predeterminado se establece en 20 minutos y puede cambiarlo si lo desea. Si es administrador del área de trabajo, también puede crear grupos de Spark personalizados para el área de trabajo y convertirlos en la opción predeterminada para otros usuarios. De este modo, puede ahorrar tiempo y evitar la configuración de un nuevo grupo de Spark cada vez que ejecute un cuaderno o un trabajo de Spark. Los grupos de Spark personalizados tardan unos tres minutos en iniciarse, ya que Spark debe obtener los nodos de Azure.

Incluso puede crear grupos de Spark de un solo nodo, estableciendo el número mínimo de nodos en uno, de modo que el controlador y el ejecutor se ejecuten en un único nodo que viene con alta disponibilidad restaurable y es adecuado para cargas de trabajo pequeñas.

El tamaño y el número de nodos que puede tener en el grupo de Spark personalizado depende de la capacidad de Microsoft Fabric. La capacidad es una medida de la potencia informática que puede usar en Azure. Una manera de pensar es que dos núcleos virtuales de Spark (una unidad de potencia informática para Spark) son iguales a una unidad de capacidad. Por ejemplo, una SKU de capacidad de Fabric F64 tiene 64 unidades de capacidad, que equivalen a 128 núcleos virtuales de Spark. Puede usar estos núcleos virtuales de Spark para crear nodos de diferentes tamaños para el grupo de Spark personalizado, siempre que el número total de núcleos virtuales de Spark no supere los 128.

Los grupos de Spark se facturan como los grupos iniciales; no paga por los grupos de Spark personalizados que haya creado a menos que tenga una sesión Spark activa creada para ejecutar un bloc de notas o una definición de trabajo Spark. Solo se le factura por la duración de sus trabajos. No se le facturan etapas como la creación del clúster y la desasignación una vez finalizado el trabajo.

Diagrama de las etapas de alto nivel de la facturación de pools personalizados.

Por ejemplo, si envía un trabajo de bloc de notas a un grupo de Spark personalizado, solo se le cobrará por el periodo de tiempo en que la sesión esté activa. La facturación de esa sesión de bloc de notas se detiene una vez que la sesión de Spark se ha detenido o ha expirado. No se le cobrará por el tiempo empleado en adquirir instancias de clúster de la nube ni por el tiempo empleado en inicializar el contexto de Spark.

Posibles configuraciones de grupo personalizadas para F64 según el ejemplo anterior:

SKU de capacidad de Fabric Unidades de capacidad Núcleos virtuales de Spark Tamaño del nodo Número máximo de nodos
F64 64 384 Pequeño 96
F64 64 384 Media 48
F64 64 384 grande 24
F64 64 384 Mas grande 12
F64 64 384 Extra grande 6

Nota:

Para crear grupos personalizados, necesita permisos de administrador para el área de trabajo. Además, el administrador de capacidad de Microsoft Fabric debe conceder permisos para permitir que los administradores del área de trabajo dimensionen sus grupos de Spark personalizados. Para más información, consulte Introducción a grupos de Spark personalizados en Fabric

Nodos

Una instancia de grupo de Spark Apache consta de un nodo principal y nodos trabajadores, podría iniciar un mínimo de un nodo en una instancia de Spark. El nodo principal ejecuta servicios de administración adicionales, como Livy, Yarn Resource Manager, Zookeeper y el controlador de Spark. Todos los nodos ejecutan servicios como Node Agent y Yarn Node Manager. Todos los nodos de trabajo ejecutan el servicio Spark Executor.

Tamaño de nodo

Un grupo de Spark puede definirse con tamaños de nodo que van desde un nodo de computación pequeño (con 4 vCore y 32 GB de memoria) hasta un nodo de computación grande (con 64 vCore y 512 GB de memoria por nodo). El tamaño de los nodos puede modificarse tras la creación del pool, aunque habría que reiniciar la sesión activa.

Size vCore Memoria
Small 4 32 GB
Media 8 64 GB
grande 16 128 GB
Mas grande 32 256 GB
Extra grande 64 512 GB

Escalado automático

La escalabilidad automática para grupos de Apache Spark proporciona la capacidad de escalar y reducir verticalmente los recursos de proceso en función de la cantidad de actividad. Cuando activas la función de auto escalado, establece el número mínimo y máximo de nodos a escalar. Cuando se deshabilita la función de auto escala, el número de nodos establecido permanece fijo. Puede modificar esta configuración tras la creación del grupo, aunque es posible que tenga que reiniciar la instancia.

Nota:

De forma predeterminada, spark.yarn.executor.decommission.enabled se establece como “true”, lo que permite el apagado automático de nodos infrautilizados para optimizar la eficacia del proceso. Si se prefiere reducir verticalmente de forma menos agresiva, esta configuración se puede establecer como “false”.

Asignación dinámica

La asignación dinámica permite a la aplicación Spark solicitar más ejecutores si las tareas superan la carga que los ejecutores actuales pueden soportar. También libera los ejecutores cuando se completan los trabajos, y si la aplicación Spark pasa a estado inactivo. A los usuarios empresariales a menudo les resulta difícil ajustar las configuraciones del ejecutor porque son muy diferentes en las distintas etapas del proceso de ejecución de un trabajo de Spark. Estas configuraciones también dependen del volumen de datos procesados, que cambian de vez en cuando. Puede habilitar la opción de asignación dinámica de ejecutores como parte de la configuración del grupo, lo que permite la asignación automática de ejecutores a la aplicación Spark en función de los nodos disponibles en el grupo Spark.

Cuando habilita la opción de asignación dinámica para cada aplicación Spark enviada, el sistema reserva ejecutores durante el paso de envío del trabajo basándose en los nodos máximos. Se especifican los nodos máximos para admitir escenarios de escalado automático satisfactorios.