Cómo trabajan los puntos de conexión de desarrollo de AWS Glue con cuadernos de SageMaker - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo trabajan los puntos de conexión de desarrollo de AWS Glue con cuadernos de SageMaker

Una de las formas comunes de acceder a sus puntos de enlace de desarrollo es usar Jupyter en los blocs de notas de SageMaker. El bloc de notas de Jupyter es una aplicación web de código abierto que se utiliza ampliamente en visualización, análisis, machine learning, etc. Un bloc de notas de SageMaker de AWS Glue le ofrece una experiencia de bloc de notas de Jupyter con puntos de enlace de desarrollo de AWS Glue. En el bloc de notas de SageMaker de AWS Glue, el entorno del bloc de notas de Jupyter está preconfigurado con SparkMagic, un complemento de Jupyter de código abierto para enviar trabajos de Spark a un clúster remoto de Spark. Apache Livy es un servicio que permite la interacción con un clúster de Spark remoto a través de una API REST. En el bloc de notas de SageMaker de AWS Glue, SparkMagic está configurado para invocar la API REST hacia un servidor Livy que se ejecuta en un punto de enlace de desarrollo de AWS Glue.

El siguiente flujo de texto explica cómo funciona cada componente:

Bloc de notas de SageMaker de AWS Glue: (Jupyter → SparkMagic) → (red) →punto de conexión de desarrollo de AWS Glue: (Apache Livy → Apache Spark)

Una vez que ejecute el script de Spark escrito en cada párrafo en un bloc de notas de Jupyter, el código de Spark se envía al servidor Livy a través de SparkMagic, luego se ejecuta un trabajo de Spark llamado “livy-session-n” en el clúster de Spark. Este trabajo se llama sesión de Livy. El trabajo de Spark se ejecutará mientras la sesión del bloc de notas esté activa. El trabajo de Spark finalizará cuando cierre el kernel de Jupyter desde el bloc de notas, o cuando se agote el tiempo de espera de la sesión. Se inicia un trabajo de Spark por archivo de bloc de notas (.ipynb).

Puede utilizar un único punto de enlace de desarrollo de AWS Glue con varias instancias de bloc de notas de SageMaker. Puede crear varios archivos de bloc de notas en cada instancia de bloc de notas de SageMaker. Al abrir un archivo de cada bloc de notas y ejecutar los párrafos, se inicia una sesión de Livy por archivo de bloc de notas en el clúster de Spark a través de SparkMagic. Cada sesión de Livy corresponde a un solo trabajo de Spark.

Comportamiento predeterminado de los puntos de conexión de desarrollo de AWS Glue y los cuadernos de SageMaker

Los trabajos de Spark se ejecutan en función de la configuración de Spark. Hay varias formas de establecer la configuración de Spark (por ejemplo, configuración de clúster de Spark, configuración de SparkMagic, etc.).

De forma predeterminada, Spark asigna recursos del clúster a una sesión de Livy en función de la configuración del clúster de Spark. En los puntos de desarrollo de AWS Glue, la configuración del clúster depende del tipo de empleado. A continuación, se incluye una tabla que explica las configuraciones comunes por tipo de empleado.

Standard G.1 X G.2 X
spark.driver.memory 5 G 10 G 20 G
spark.executor.memory 5 G 10 G 20 G
spark.executor.cores 4 8 16
spark.dynamicAllocation.enabled TRUE TRUE TRUE

El número máximo de ejecutores de Spark se calcula automáticamente mediante una combinación de DPU (o NumberOfWorkers) y tipo de empleado.

Standard G.1 X G.2 X
Cantidad máxima de ejecutores de Spark (DPU - 1) * 2 - 1 (NumberOfWorkers - 1) (NumberOfWorkers - 1)

Por ejemplo, si el punto de enlace de desarrollo tiene 10 empleados y el tipo de empleado es G.1X, entonces tendrá 9 ejecutores de Spark y todo el clúster tendrá 90 G de memoria del ejecutor ya que cada ejecutor tendrá 10 G de memoria.

Independientemente del tipo de empleado especificado, se activará la asignación dinámica de recursos de Spark. Si un conjunto de datos es lo suficientemente grande, Spark puede asignar todos los ejecutores a una única sesión de Livy ya que spark.dynamicAllocation.maxExecutors no está configurado en forma predeterminada. Esto significa que otras sesiones de Livy en el mismo punto de enlace de desarrollo esperarán para lanzar nuevos ejecutores. Si el conjunto de datos es pequeño, Spark podrá asignar ejecutores a múltiples sesiones de Livy al mismo tiempo.

nota

Para obtener más información acerca de cómo se asignan los recursos en diferentes casos de uso y cómo se establece una configuración para modificar el comportamiento, consulte Configuración avanzada: uso compartido de puntos de conexión de desarrollo entre múltiples usuarios.