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:
- Elige terminal del sistema desde el iniciador de SageMaker Studio.
- Ejecute los siguientes comandos en la terminal del sistema:
Los comandos tardarán unos segundos en completarse.
- 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:
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:
- Elige terminal del sistema en el iniciador de SageMaker Studio.
- Ejecute los siguientes comandos en la terminal del sistema:
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:
- En la consola de SageMaker, elija dominios en el panel de navegación, luego elija el dominio SageMaker Studio.
- En la página de detalles del dominio, vaya a la Entorno .
- Seleccione la configuración del ciclo de vida para la interfaz de usuario de Spark en SageMaker Studio.
- Elige Despegar.
- 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.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Automoción / vehículos eléctricos, Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- Desplazamientos de bloque. Modernización de la propiedad de compensaciones ambientales. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/host-the-spark-ui-on-amazon-sagemaker-studio/