Preparación para usar Apache Spark
Apache Spark es un marco de procesamiento de datos distribuido que permite el análisis de datos a gran escala mediante la coordinación del trabajo en varios nodos de procesamiento en un clúster, conocido como Microsoft Fabric como un grupo de Spark. En pocas palabras, Spark usa un enfoque de "divide y vencerás" para procesar grandes volúmenes de datos rápidamente distribuyendo el trabajo entre varios equipos. Spark controla el proceso de distribución de las tareas y recopilación de los resultados.
Spark puede ejecutar código escrito en una amplia gama de lenguajes, como Java, Scala (lenguaje de scripting basado en Java), Spark R, Spark SQL y PySpark (variante de Python específica para Spark). En la práctica, la mayoría de las cargas de trabajo de análisis e ingeniería de datos se realizan con una combinación de PySpark y Spark SQL.
Grupos de Spark
Un grupo de Spark consta de nodos de proceso que distribuyen las tareas de procesamiento de datos. La arquitectura general se muestra en el diagrama siguiente.
Como se muestra en el diagrama, un grupo de Spark contiene dos tipos de nodo:
- Un nodo principal en un grupo de Spark coordina los procesos distribuidos a través de un programa de controladores.
- El grupo incluye varios nodos de trabajo en los que los procesos de ejecutor realizan las tareas reales de procesamiento de datos.
El grupo de Spark usa esta arquitectura de proceso distribuida para acceder a los datos y procesarlos en un almacén de datos compatible, como un almacén de lago de datos basado en OneLake.
Grupos de Spark en Microsoft Fabric
Microsoft Fabric proporciona un grupo de inicio en cada área de trabajo, lo que permite que los trabajos de Spark se inicien y ejecuten rápidamente con una configuración y configuración mínimas. Puede configurar el grupo de inicio para optimizar los nodos que contiene de acuerdo con las necesidades específicas de la carga de trabajo o las restricciones de costos.
Además, puede crear grupos de Spark personalizados con configuraciones de nodo específicas que satisfagan las necesidades específicas de procesamiento de datos.
Nota:
Los administradores de Fabric pueden deshabilitar la capacidad de personalizar la configuración del grupo de Spark en el nivel de capacidad de Fabric. Para obtener más información, consulte Configuración de administración de capacidad para Ingeniería de datos y Ciencia de datos en la documentación de Fabric.
Puede administrar la configuración del grupo de inicio y crear nuevos grupos de Spark en la sección Ingeniería/Ciencia de datos de la configuración del área de trabajo.
Las opciones de configuración específicas para los grupos de Spark son las siguientes:
- Familia de nodos: tipo de máquinas virtuales que se usan para los nodos del clúster de Spark. En la mayoría de los casos, los nodos optimizados para memoria proporcionan un rendimiento óptimo.
- escalado automático: Si se deben aprovisionar o no automáticamente los nodos según sea necesario y, si es así, el número inicial y máximo de nodos que se asignarán al grupo.
- Asignación dinámica: Si se va a asignar o no dinámicamente los procesos del ejecutor en los nodos de trabajo basados en volúmenes de datos.
Si crea uno o varios grupos de Spark personalizados en un área de trabajo, puede establecer uno de ellos (o el grupo de inicio) como grupo predeterminado que se usará si no se especifica un grupo específico para un trabajo de Spark determinado.
Sugerencia
Para obtener más información sobre cómo administrar grupos de Spark en Microsoft Fabric, consulte Configurar grupos de inicio en Microsoft Fabric y Creación de grupos de Spark personalizados en Microsoft Fabric en la documentación de Microsoft Fabric.
Runtimes y entornos
El ecosistema de código abierto de Spark incluye varias versiones del runtime de Spark, que determina qué versiones de Apache Spark, Delta Lake, Python y otros componentes de software principales se instalan. Además, en un runtime puede instalar y usar una amplia selección de bibliotecas de código para tareas comunes (y a veces muy especializadas). Dado que una gran cantidad de procesamiento de Spark se realiza con PySpark, es muy probable que, gracias a la enorme gama de bibliotecas de Python, haya una biblioteca para la tarea que necesita realizar.
En algunos casos, es posible que las organizaciones necesiten definir varios entornos para admitir una amplia gama de tareas de procesamiento de datos. Cada entorno define una versión de runtime específica, así como las bibliotecas que se deben instalar para realizar operaciones específicas. Después, los ingenieros y científicos de datos pueden seleccionar qué entorno quieren usar con un grupo de Spark para una tarea determinada.
Runtimes de Spark en Microsoft Fabric
Microsoft Fabric admite varios runtimes de Spark y seguirá agregando compatibilidad con nuevos runtimes a medida que se lanzan. Puede usar la interfaz de configuración del área de trabajo para especificar el runtime de Spark que el entorno usa de manera predeterminada cuando se inicia un grupo de Spark.
Sugerencia
Para obtener más información sobre los runtimes de Spark en Microsoft Fabric, consulte Runtimes de Apache Spark en Fabric en la documentación de Microsoft Fabric.
Entornos en Microsoft Fabric
Puede crear entornos personalizados en un área de trabajo de Fabric, lo que le permite usar runtimes, bibliotecas y opciones de configuración específicos de Spark para diferentes operaciones de procesamiento de datos.
Al crear un entorno, puede hacer lo siguiente:
- Especificar el runtime de Spark que debe usar
- Ver las bibliotecas integradas que están instaladas en cada entorno
- Instalar bibliotecas públicas específicas desde el índice de paquetes de Python (PyPI)
- Instalar bibliotecas personalizadas cargando un archivo de paquete
- Especificar el grupo de Spark que el entorno debe usar
- Especificar las propiedades de configuración de Spark para invalidar el comportamiento predeterminado
- Cargar los archivos de recursos que deben estar disponibles en el entorno
Después de crear al menos un entorno personalizado, puede especificarlo como el entorno predeterminado en la configuración del área de trabajo.
Sugerencia
Para obtener más información sobre el uso de entornos personalizados en Microsoft Fabric, consulte Creación, configuración y uso de un entorno en Microsoft Fabric en la documentación de Microsoft Fabric.
Opciones de configuración adicionales de Spark
La administración de grupos y entornos de Spark es la principal manera en la que puede administrar el procesamiento de Spark en un área de trabajo de Fabric. Sin embargo, hay algunas opciones adicionales que puede usar para realizar más optimizaciones.
Motor de ejecución nativo
El motor de ejecución nativo en Microsoft Fabric es un motor de procesamiento vectorizado que ejecuta operaciones de Spark directamente en la infraestructura del almacén de lago de datos. El uso del motor de ejecución nativo puede mejorar significativamente el rendimiento de las consultas al trabajar con grandes conjuntos de datos en formatos de archivo Parquet o Delta.
Para usar el motor de ejecución nativo, puede habilitarlo en el nivel del entorno o en un cuaderno individual. Para habilitar el motor de ejecución nativo en el nivel del entorno, establezca las siguientes propiedades de Spark en la configuración del entorno:
- spark.native.enabled: true
- spark.shuffle.manager: org.apache.spark.shuffle.sort.ColumnarShuffleManager
Para habilitar el motor de ejecución nativo para un script o cuaderno específico, puede establecer estas propiedades de configuración al principio del código, de la siguiente manera:
%%configure
{
"conf": {
"spark.native.enabled": "true",
"spark.shuffle.manager": "org.apache.spark.shuffle.sort.ColumnarShuffleManager"
}
}
Sugerencia
Para obtener más información sobre el motor de ejecución nativo, consulte Motor de ejecución nativo para Fabric Spark en la documentación de Microsoft Fabric.
Modo de simultaneidad alta
Al ejecutar código spark en Microsoft Fabric, se inicia una sesión de Spark. Puede optimizar la eficacia del uso de recursos de Spark mediante el modo de simultaneidad alta para compartir sesiones de Spark con varios usuarios o en procesos simultáneos. Cuando el modo de simultaneidad alta está habilitado para Notebooks, varios usuarios pueden ejecutar código en cuadernos que usan la misma sesión de Spark, a la vez que garantizan el aislamiento del código para evitar que las variables de un cuaderno se vean afectadas por el código de otro. También puede habilitar el modo de alta simultaneidad para trabajos de Spark, lo que permite eficiencias similares para la ejecución simultánea de scripts de Spark no interactivos.
Para habilitare el modo de simultaneidad alta, use la sección Ingeniería/Ciencia de datos de la interfaz de configuración del área de trabajo.
Sugerencia
Para obtener más información sobre el modo de simultaneidad alta, consulte Modo de simultaneidad alta en Apache Spark para Fabric en la documentación de Microsoft Fabric.
Registro automático de MLFlow
MLFlow es una biblioteca de código abierto que se usa en cargas de trabajo de ciencia de datos para administrar el entrenamiento y la implementación de modelos de aprendizaje automático. Una funcionalidad clave de MLFlow es la capacidad de registrar las operaciones de entrenamiento y administración del modelo. De manera predeterminada, Microsoft Fabric usa MLFlow para registrar implícitamente la actividad del experimento de aprendizaje automático sin necesidad de que el científico de datos incluya código explícito para hacerlo. Puede deshabilitar esta funcionalidad en la configuración del área de trabajo.
Administración de Spark para una capacidad de Fabric
Los administradores pueden administrar la configuración de Spark en un nivel de capacidad de Fabric, lo que les permite restringir e invalidar la configuración de Spark en las áreas de trabajo de una organización.
Sugerencia
Para obtener más información sobre cómo administrar la configuración de Spark en el nivel de capacidad de Fabric, consulte Configuración y administración de la ingeniería de datos y la configuración de ciencia de datos para capacidades de Fabric en la documentación de Microsoft Fabric.