¿Qué es el proceso de Apache 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 Apache 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 Apache Spark, normalmente en 5 a 10 segundos, sin necesidad de configuración manual. También dispone de flexibilidad para personalizar los grupos de Apache 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.
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.
Los grupos de inicio tienen clústeres de Apache 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.
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 Apache 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 Apache Spark. No se le cobrará por el tiempo que los clústeres estén inactivos en el grupo.
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 Apache 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, lo que equivale a 384 núcleos virtuales Spark (64 * 2 * 3X ráfaga multiplicador). 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 384.
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.
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 Apache Spark. Todos los nodos ejecutan servicios como Node Agent y Yarn Node Manager. Todos los nodos de trabajo ejecutan el servicio Apache 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 extremadamente 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 |
Nota:
Los tamaños de nodo X-Large y XX-Large solo se permiten para SKU de Fabric que no sean de prueba.
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 Apache 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 habilite 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ínimos. Se especifican los nodos máximos para admitir escenarios de escalado automático satisfactorios.