Compartir a través de


Apache Spark en Azure Machine Learning

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:

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.

Diagrama ampliable que muestra escenarios para el período de inactividad de la sesión de Apache Spark y el desmontaje del clúster.

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:

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.

Diagrama expandible que muestra la etiqueta de configuración de sesión de Spark que habilita la memoria caché.

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:

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