Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La integración de Azure Machine Learning con Azure Synapse Analytics proporciona un acceso sencillo a los recursos de cálculo distribuidos con el marco de Apache Spark. Esta integración ofrece estas experiencias de procesamiento informático de Apache Spark:
- Proceso de Spark sin servidor
- Grupo de Spark de Synapse asociado
Proceso de Spark sin servidor
Con el marco de Apache Spark, el proceso de Spark sin servidor de Azure Machine Learning es la manera más fácil de realizar tareas de procesamiento informático distribuido en el entorno de Azure Machine Learning. Azure Machine Learning ofrece un clúster de proceso de Apache Spark a petición totalmente administrado y sin servidor. No es necesario crear un área de trabajo de Azure Synapse y un grupo de Spark de Synapse.
Puede definir recursos, incluido el tipo de instancia y la versión en tiempo de ejecución de Apache Spark. Utilice esos recursos para acceder a la capacidad de computación de Spark sin servidor en notebooks de Azure Machine Learning para:
- Desarrollo de código de Spark interactivo
- Ejecución de canalizaciones de aprendizaje automático con un componente de Spark
- envíos de trabajos por lotes de Spark
Puntos que se deben tener en cuenta
El proceso de Spark sin servidor funciona bien para la mayoría de los escenarios de usuario que requieren acceso rápido a los recursos informáticos distribuidos a través de Apache Spark. Sin embargo, para tomar una decisión informada, tenga en cuenta las ventajas y desventajas de este enfoque.
Ventajas:
- No hay dependencias en la creación de otros recursos de Azure para Apache Spark (la infraestructura de Azure Synapse funciona en segundo plano).
- No se requieren permisos de suscripción para crear recursos relacionados con Azure Synapse.
- No son necesarias las cuotas del grupo de SQL.
Desventajas:
- No hay metastore de Hive persistente. El proceso de Spark sin servidor solo admite Spark SQL en memoria.
- No están disponibles las tablas ni las bases de datos.
- No hay integración de Azure Purview.
- No están disponibles los servicios vinculados.
- Hay menos orígenes y conectores de datos.
- No hay ninguna configuración de nivel de grupo.
- No hay ninguna administración de bibliotecas de nivel de grupo.
- Solo compatibilidad parcial con
mssparkutils.
Network configuration (Configuración de red)
Para usar el aislamiento de red con Azure Machine Learning y el proceso de Spark sin servidor, use una red virtual administrada.
Períodos de inactividad y mecanismo de desmontaje
Al iniciarse por primera vez, un recurso de proceso de Spark sin servidor (arranque en frío) puede necesitar de tres a cinco minutos para iniciar la sesión de Spark en sí. Este retraso se produce porque el recurso de proceso de Spark sin servidor automatizado, respaldado por Azure Synapse, necesita tiempo para ser aprovisionado. Después de que se aprovisiona el proceso de Spark sin servidor y se inicia una sesión de Apache Spark, las ejecuciones de código posteriores (inicio en caliente) no experimentan este retraso.
La configuración de la sesión de Spark ofrece una opción que define un tiempo de espera de sesión (en minutos). La sesión de Spark finaliza después de un período de inactividad que supera el tiempo de espera definido por el usuario. Si otra sesión de Spark no se inicia en los siguientes 10 minutos, el sistema desmantela los recursos provistos para el Spark sin servidor.
Después de que el sistema desmonte el recurso de computación de Spark sin servidor, el envío del siguiente trabajo requiere un arranque en frío. En la siguiente visualización se muestran algunos escenarios del periodo de inactividad de sesión y de desmontaje de clústeres.
Paquetes de Conda de nivel de sesión
Un archivo YAML de dependencias de Conda puede definir muchos paquetes de Conda a nivel de sesión en una configuración de sesión. Una sesión agotará el tiempo de espera si necesita más de 15 minutos para instalar los paquetes de Conda definidos en el archivo YAML. Compruebe si un paquete necesario ya está disponible en la imagen base de Azure Synapse. Para ello, visite estos recursos para determinar los paquetes disponibles en la imagen base de la versión de Apache Spark en uso:
- Entorno de ejecución de Azure Synapse para Apache Spark 3.5
- Entorno de ejecución de Azure Synapse para Apache Spark 3.4
- Entorno de ejecución de Azure Synapse para Apache Spark 3.3
Nota:
Para un paquete de Conda de nivel de sesión:
- El arranque en frío necesita aproximadamente de 10 a 15 minutos.
- El inicio en caliente, utilizando el mismo paquete de Conda, necesita aproximadamente un minuto.
- El inicio en caliente, con un paquete de Conda diferente, necesita aproximadamente 10 a 15 minutos.
- Si el paquete que instala es grande o necesita un tiempo de instalación largo, podría afectar al tiempo de inicio de la instancia de Spark.
- No se admite la modificación de la versión pySpark, Python, Scala/Java, .NET o Spark.
- No se admiten las imágenes acopladas.
Mejora de la hora de arranque en frío de sesión al usar paquetes de Conda de nivel de sesión
Para mejorar el tiempo de inicio en frío de la sesión de Spark, establezca la spark.hadoop.aml.enable_cache variable de configuración a true. Con los paquetes de Conda de nivel de sesión, el inicio en frío de la sesión normalmente tarda entre 10 y 15 minutos cuando la sesión se inicia por primera vez. Sin embargo, los arranques en frío de sesiones posteriores duran entre tres y cinco minutos. Defina la variable de configuración en la interfaz de usuario Configurar sesión, en Opciones de configuración.
Grupo de Spark de Synapse asociado
Al crear un grupo de Spark en un área de trabajo de Azure Synapse, puede acceder a él en el área de trabajo de Azure Machine Learning con el grupo de Spark de Synapse asociado. Esta opción es buena para los usuarios que desean reutilizar un grupo de Synapse Spark existente.
Para asociar un grupo de Synapse Spark a un área de trabajo de Azure Machine Learning, debe completar más pasos para poder usar el grupo en Azure Machine Learning para:
- Desarrollo de código de Spark interactivo
- Envío de trabajos por lotes de Spark
- Ejecución de canalizaciones de aprendizaje automático con un componente de Spark
Un grupo de Spark de Synapse conectado proporciona acceso a las características nativas de Azure Synapse. Es responsable del aprovisionamiento, la asociación, la configuración y la administración del grupo de Synapse Spark.
La configuración de la sesión de Spark para un grupo de Spark de Synapse conectado también ofrece una opción para definir un tiempo de espera de sesión (en minutos). El comportamiento del tiempo de espera de la sesión es similar a la descripción que se muestra en la sección anterior, excepto que los recursos asociados nunca se desmontan después del tiempo de espera de la sesión.
Definición del tamaño del clúster de Spark
En los trabajos de Spark de Azure Machine Learning, puede definir el tamaño del clúster de Spark con tres valores de parámetro:
- Número de ejecutores
- Núcleos del ejecutor
- Memoria del ejecutor
Considere un ejecutor de Apache Spark de Azure Machine Learning como equivalente a los nodos de trabajo de Azure Spark. Un ejemplo puede explicar estos parámetros. Si define el número de ejecutores como 6 (equivalente a seis nodos de trabajo), el número de núcleos del ejecutor como 4 y la memoria del ejecutor como 28 GB, el trabajo de Spark tiene acceso a un clúster con 24 núcleos en total y 168 GB de memoria.
Garantizar el acceso a los recursos para trabajos de Spark
Para acceder a los datos y otros recursos, un trabajo de Spark puede usar un paso a través de la identidad del usuario o una identidad administrada. En esta tabla, se resumen los mecanismos que usan los trabajos de Spark para acceder a los recursos.
| Grupo de Spark | Identidades admitidas | Identidad predeterminada |
|---|---|---|
| Proceso de Spark sin servidor | Identidad de usuario, identidad administrada asignada por el usuario asociada al área de trabajo | Identidad del usuario |
| Grupo de Spark de Synapse asociado | Identidad de usuario, identidad administrada asignada por el usuario asociada al grupo de Spark de Synapse conectado, identidad administrada asignada por el sistema del grupo de Spark de Synapse asociado | Identidad administrada asignada por el sistema del grupo de Spark de Synapse asociado |
En este artículo se describe el acceso a los recursos para trabajos de Spark. En una sesión de cuaderno, tanto el proceso de Spark sin servidor como el grupo de Spark de Synapse asociado dependen del paso a través de la identidad del usuario para el acceso a los datos durante la limpieza y transformación de datos interactivos.
Nota:
- Para garantizar la ejecución correcta del trabajo de Spark, asigne los roles de Colaborador y Colaborador de datos de Blob para almacenamiento (de la cuenta de Almacenamiento de Azure que se usa para la entrada y salida de datos) a la identidad que utiliza para enviar un trabajo de Spark.
- Si un grupo de Spark de Synapse conectado apunta a un grupo de Spark de Synapse de un área de trabajo de Azure Synapse que tiene asociada una red virtual administrada, configure un punto de conexión privado administrado a una cuenta de almacenamiento. Esta configuración ayuda a garantizar el acceso a los datos.
Pasos siguientes
- Asociación y administración de un grupo de Spark de Synapse en Azure Machine Learning
- Limpieza y transformación de datos interactivos con Apache Spark en Azure Machine Learning
- Envío de trabajos de Spark en Azure Machine Learning
- Ejemplos de código para trabajos de Spark mediante la CLI de Azure Machine Learning
- Ejemplos de código para trabajos de Spark mediante el SDK de Python de Azure Machine Learning