Logotipo de Zephyrnet

Aloje la interfaz de usuario de Spark en Amazon SageMaker Studio | Servicios web de Amazon

Fecha:

Amazon SageMaker ofrece varias formas de ejecutar trabajos de procesamiento de datos distribuidos con Apache Spark, un marco informático distribuido popular para el procesamiento de grandes datos.

Puede ejecutar aplicaciones Spark de forma interactiva desde Estudio Amazon SageMaker al conectar Blocs de notas de SageMaker Studio y sesiones interactivas de AWS Glue para ejecutar trabajos de Spark con un clúster sin servidor. Con sesiones interactivas, puede elegir Apache Spark o Ray para procesar fácilmente grandes conjuntos de datos, sin preocuparse por la administración de clústeres.

Como alternativa, si necesita más control sobre el entorno, puede usar un contenedor de SageMaker Spark prediseñado para ejecutar aplicaciones de Spark como trabajos por lotes en un clúster distribuido completamente administrado con Procesamiento de Amazon SageMaker. Esta opción le permite seleccionar varios tipos de instancias (optimizadas para computación, optimizadas para memoria y más), la cantidad de nodos en el clúster y la configuración del clúster, lo que permite una mayor flexibilidad para el procesamiento de datos y el entrenamiento del modelo.

Finalmente, puede ejecutar aplicaciones Spark conectando portátiles Studio con EMR de Amazon gruposo ejecutando su clúster de Spark en Nube informática elástica de Amazon (Amazon EC2).

Todas estas opciones le permiten generar y almacenar registros de eventos de Spark para analizarlos a través de la interfaz de usuario basada en web comúnmente llamada Interfaz de usuario de Spark, que ejecuta un servidor de historial de Spark para monitorear el progreso de las aplicaciones de Spark, rastrear el uso de recursos y depurar errores.

En esta publicación, compartimos un a medida para instalar y ejecutar Spark History Server en SageMaker Studio y acceder a la interfaz de usuario de Spark directamente desde el IDE de SageMaker Studio, para analizar los registros de Spark producidos por diferentes servicios de AWS (AWS Glue Interactive Sessions, SageMaker Processing Jobs y Amazon EMR) y almacenados en un Servicio de almacenamiento simple de Amazon (Amazon S3) cubo.

Resumen de la solución

La solución integra Spark History Server en la aplicación Jupyter Server en SageMaker Studio. Esto permite a los usuarios acceder a los registros de Spark directamente desde el IDE de SageMaker Studio. El Spark History Server integrado admite lo siguiente:

  • Acceso a registros generados por trabajos de SageMaker Processing Spark
  • Acceder a los registros generados por las aplicaciones de AWS Glue Spark
  • Acceso a registros generados por clústeres de Spark autoadministrados y Amazon EMR

Una interfaz de línea de comandos (CLI) de utilidad llamada sm-spark-cli también se proporciona para interactuar con la interfaz de usuario de Spark desde la terminal del sistema SageMaker Studio. El sm-spark-cli permite administrar Spark History Server sin salir de SageMaker Studio.

La solución consta de scripts de shell que realizan las siguientes acciones:

  • Instale Spark en Jupyter Server para perfiles de usuario de SageMaker Studio o para un espacio compartido de SageMaker Studio
  • Instale la sm-spark-cli para un perfil de usuario o espacio compartido

Instale la interfaz de usuario de Spark manualmente en un dominio de SageMaker Studio

Para alojar Spark UI en SageMaker Studio, complete los siguientes pasos:

  1. Elige terminal del sistema desde el iniciador de SageMaker Studio.

  1. Ejecute los siguientes comandos en la terminal del sistema:
curl -LO https://github.com/aws-samples/amazon-sagemaker-spark-ui/releases/download/v0.1.0/amazon-sagemaker-spark-ui-0.1.0.tar.gz
tar -xvzf amazon-sagemaker-spark-ui-0.1.0.tar.gz cd amazon-sagemaker-spark-ui-0.1.0/install-scripts
chmod +x install-history-server.sh
./install-history-server.sh

Los comandos tardarán unos segundos en completarse.

  1. Cuando se completa la instalación, puede iniciar la interfaz de usuario de Spark utilizando el sm-spark-cli y acceda a él desde un navegador web ejecutando el siguiente código:

sm-spark-cli start s3://DOC-EXAMPLE-BUCKET/<SPARK_EVENT_LOGS_LOCATION>

La ubicación de S3 donde se almacenan los registros de eventos producidos por SageMaker Processing, AWS Glue o Amazon EMR se puede configurar cuando se ejecutan aplicaciones Spark.

Para los cuadernos de SageMaker Studio y las sesiones interactivas de AWS Glue, puede configurar la ubicación del registro de eventos de Spark directamente desde el cuaderno mediante el sparkmagic núcleo.

El sparkmagic kernel contiene un conjunto de herramientas para interactuar con clústeres de Spark remotos a través de cuadernos. Ofrece magia (%spark, %sql) para ejecutar código de Spark, realizar consultas SQL y configurar ajustes de Spark como la memoria del ejecutor y los núcleos.

Para el trabajo de procesamiento de SageMaker, puede configurar la ubicación del registro de eventos de Spark directamente desde SageMaker Python SDK.

Consulte la documentación de AWS para obtener información adicional:

Puede elegir la URL generada para acceder a la interfaz de usuario de Spark.

La siguiente captura de pantalla muestra un ejemplo de la interfaz de usuario de Spark.

Puede verificar el estado del Spark History Server usando el sm-spark-cli status comando en la terminal de Studio System.

También puede detener Spark History Server cuando sea necesario.

Automatice la instalación de la interfaz de usuario de Spark para usuarios en un dominio de SageMaker Studio

Como administrador de TI, puede automatizar la instalación para los usuarios de SageMaker Studio mediante un configuración del ciclo de vida. Esto se puede hacer para todos los perfiles de usuario bajo un dominio de SageMaker Studio o para perfiles específicos. Ver Personalice Amazon SageMaker Studio mediante configuraciones de ciclo de vida para más información.

Puede crear una configuración de ciclo de vida desde el instalar-historial-servidor.sh y adjúntelo a un dominio existente de SageMaker Studio. La instalación se ejecuta para todos los perfiles de usuario del dominio.

Desde un terminal configurado con el Interfaz de línea de comandos de AWS (AWS CLI) y los permisos adecuados, ejecute los siguientes comandos:

curl -LO https://github.com/aws-samples/amazon-sagemaker-spark-ui/releases/download/v0.1.0/amazon-sagemaker-spark-ui-0.1.0.tar.gz
tar -xvzf amazon-sagemaker-spark-ui-0.1.0.tar.gz cd amazon-sagemaker-spark-ui-0.1.0/install-scripts LCC_CONTENT=`openssl base64 -A -in install-history-server.sh` aws sagemaker create-studio-lifecycle-config --studio-lifecycle-config-name install-spark-ui-on-jupyterserver --studio-lifecycle-config-content $LCC_CONTENT --studio-lifecycle-config-app-type JupyterServer --query 'StudioLifecycleConfigArn' aws sagemaker update-domain --region {YOUR_AWS_REGION} --domain-id {YOUR_STUDIO_DOMAIN_ID} --default-user-settings '{ "JupyterServerAppSettings": { "DefaultResourceSpec": { "LifecycleConfigArn": "arn:aws:sagemaker:{YOUR_AWS_REGION}:{YOUR_STUDIO_DOMAIN_ID}:studio-lifecycle-config/install-spark-ui-on-jupyterserver", "InstanceType": "system" }, "LifecycleConfigArns": [ "arn:aws:sagemaker:{YOUR_AWS_REGION}:{YOUR_STUDIO_DOMAIN_ID}:studio-lifecycle-config/install-spark-ui-on-jupyterserver" ] }}'

Después de que Jupyter Server se reinicia, la interfaz de usuario de Spark y el sm-spark-cli estará disponible en su entorno de SageMaker Studio.

Limpiar

En esta sección, le mostramos cómo limpiar la interfaz de usuario de Spark en un dominio de SageMaker Studio, ya sea de forma manual o automática.

Desinstalar manualmente la interfaz de usuario de Spark

Para desinstalar manualmente la interfaz de usuario de Spark en SageMaker Studio, complete los siguientes pasos:

  1. Elige terminal del sistema en el iniciador de SageMaker Studio.

  1. Ejecute los siguientes comandos en la terminal del sistema:
cd amazon-sagemaker-spark-ui-0.1.0/install-scripts chmod +x uninstall-history-server.sh
./uninstall-history-server.sh

Desinstale la interfaz de usuario de Spark automáticamente para todos los perfiles de usuario de SageMaker Studio

Para desinstalar automáticamente la interfaz de usuario de Spark en SageMaker Studio para todos los perfiles de usuario, complete los siguientes pasos:

  1. En la consola de SageMaker, elija dominios en el panel de navegación, luego elija el dominio SageMaker Studio.

  1. En la página de detalles del dominio, vaya a la Entorno .
  2. Seleccione la configuración del ciclo de vida para la interfaz de usuario de Spark en SageMaker Studio.
  3. Elige Despegar.

  1. Elimine y reinicie las aplicaciones de Jupyter Server para los perfiles de usuario de SageMaker Studio.

Conclusión

En esta publicación, compartimos una solución que puede usar para instalar rápidamente la interfaz de usuario de Spark en SageMaker Studio. Con la interfaz de usuario de Spark alojada en SageMaker, los equipos de aprendizaje automático (ML) e ingeniería de datos pueden usar computación en la nube escalable para acceder y analizar registros de Spark desde cualquier lugar y acelerar la entrega de sus proyectos. Los administradores de TI pueden estandarizar y acelerar el aprovisionamiento de la solución en la nube y evitar la proliferación de entornos de desarrollo personalizados para proyectos de ML.

Todo el código que se muestra como parte de esta publicación está disponible en el Repositorio GitHub.


Acerca de los autores

Giuseppe Angelo Porcelli es un Arquitecto Principal de Soluciones Especializado en Aprendizaje Automático para Amazon Web Services. Con varios años de ingeniería de software y experiencia en ML, trabaja con clientes de cualquier tamaño para comprender sus necesidades comerciales y técnicas y diseñar soluciones de IA y ML que aprovechen al máximo la nube de AWS y la pila de Amazon Machine Learning. Ha trabajado en proyectos en diferentes dominios, incluidos MLOps, visión por computadora y NLP, que involucran un amplio conjunto de servicios de AWS. En su tiempo libre, a Giuseppe le gusta jugar al fútbol.

Bruno Pistón es un arquitecto de soluciones especializado en IA/ML para AWS con sede en Milán. Trabaja con clientes de cualquier tamaño, ayudándolos a comprender sus necesidades técnicas y a diseñar soluciones de inteligencia artificial y aprendizaje automático que aprovechan al máximo la nube de AWS y la pila de Amazon Machine Learning. Su campo de experiencia incluye el aprendizaje automático de extremo a extremo, la industrialización del aprendizaje automático y la IA generativa. Le gusta pasar tiempo con sus amigos y explorar nuevos lugares, así como viajar a nuevos destinos.

punto_img

Información más reciente

punto_img