Saltar al contenido

¿Cómo configuro las instancias de cuadernos de SageMaker AI para usar las sesiones interactivas de AWS Glue, los núcleos de Sparkmagic o PySparkProcessor para ejecutar cargas de trabajo de big data?

5 minutos de lectura
0

Quiero configurar una instancia de cuaderno de Amazon SageMaker AI para usar sesiones interactivas de AWS Glue, PySparkProcessor o núcleos de Sparkmagic para ejecutar cargas de trabajo de big data.

Resolución

Para configurar una instancia de cuaderno de SageMaker AI para ejecutar cargas de trabajo de Spark y PySpark, completa una de las siguientes resoluciones.

Configuración de sesiones interactivas de AWS Glue para instancias de cuaderno

Si deseas disponer de una opción sin servidor para ejecutar cargas de trabajo de Apache Spark y PySpark, configura las sesiones interactivas de AWS Glue para las instancias de tus cuadernos. Cuando inicias la instancia de tu cuaderno, la sesión interactiva crea un núcleo de PySpark y un núcleo de Spark. A continuación, puedes usar uno de los núcleos instalados desde la pestaña del iniciador de aplicaciones de Jupyter o JupyterLab.

Concesión de permisos para las sesiones interactivas de AWS Glue

Sigue estos pasos:

  1. Abre la consola de AWS Identity and Access Management (IAM).
  2. En el panel de navegación, en Administración de accesos, elige Roles.
  3. Selecciona el rol de ejecución que usas para la instancia de cuaderno de SageMaker AI.
  4. Crea la siguiente política de IAM personalizada insertada en el editor JSON:
    {
        "Version": "2012-10-17",		 	 	
        "Statement": [
            {
                "Sid": "uniqueStatementId",
    
                "Effect": "Allow",
                "Action": [
    	            "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "YOUR-IAM-ROLE-ARN"
            }
        ]
    }
    Nota: Sustituye YOUR-IAM-ROLE-ARN por el nombre de recurso de Amazon (ARN) del rol de ejecución de IAM de tu instancia de cuaderno.
  5. Para conceder permisos a AWS Glue para el rol de IAM, selecciona Adjuntar políticas en el menú desplegable Agregar permisos. A continuación, busca AwsGlueSessionUserRestrictedServiceRole y selecciona Adjuntar políticas.
  6. Para permitir que AWS Glue asuma el rol de IAM, selecciona la pestaña Relaciones de confianza y, a continuación, agrega glue.amazonaws.com a la lista de servicios. Confirma que tu política de confianza es similar a la del siguiente ejemplo:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "sagemaker.amazonaws.com",
                        "glue.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Instalación de los núcleos de sesiones interactivas de AWS Glue en instancias de cuaderno

Sigue estos pasos:

  1. Para instalar automáticamente los núcleos de AWS Glue durante el inicio, crea el siguiente script de configuración del ciclo de vida:

    #!/bin/bash
    
    set -e
    
    # Start conda environment
    sudo -u ec2-user -i <<'EOF'
    
    # Activate conda default environment
    source /home/ec2-user/anaconda3/bin/activate JupyterSystemEnv
    
    # Install/upgrade packages for boto3 and aws-glue-sessions
    pip3 install --upgrade jupyter boto3 aws-glue-sessions
    echo "AWS Glue Sessions Installed Successfully"
    
    # Install Glue kernels
    install-glue-kernels
    echo "Glue Kernels Installed Successfully"
    
    # Deactivate conda environment
    conda deactivate
    
    EOF
    # Ensure script reports success
    echo "Lifecycle configuration complete!"
    systemctl restart jupyter-server
    sudo touch /home/ec2-user/glue_ready
  2. Navega hasta la instancia de cuaderno y, a continuación, confirma que la instancia no está en estado InService.

  3. Para adjuntar el script de configuración del ciclo de vida, elige Configuración de la instancia de cuaderno y, a continuación, elige Editar.

  4. En Configuración adicional, selecciona tu script de configuración del ciclo de vida en la lista desplegable Configuración del ciclo de vida.

  5. Elige Actualizar instancia del cuaderno.
    Nota: La instancia de cuaderno puede tardar varios minutos en actualizarse.

  6. Inicia la instancia de cuaderno.

  7. Abre JupyterLab y, a continuación, selecciona la pestaña Iniciador.

  8. Elige el núcleo de AWS Glue Spark o AWS Glue PySpark para ejecutar tus cargas de trabajo de datos.
    Nota: Después de procesar la carga de trabajo, cierra el kernel en JupyterLab para no seguir incurriendo en cargos en AWS Glue.

Para obtener más información sobre cómo configurar tu sesión interactiva de AWS Glue, consulta Configuración de las sesiones interactivas de AWS Glue para cuadernos de Jupyter y AWS Glue Studio.

Configuración de PySparkProcessor para procesar los trabajos de SageMaker AI

Puedes usar PySparkProcessor para ejecutar scripts de PySpark como trabajos de procesamiento. Para obtener más información, consulta PySparkProcessor en el sitio web Read the Docs de SageMaker.

Nota: PySparkProcessor utiliza contenedores prediseñados de Spark de SageMaker AI. Solo puedes configurar los argumentos framework_version, py_version y container_version.

Para ver, por ejemplo, los cuadernos que puedes usar, consulta sagemaker-spark-processing.ipynb en el sitio web de GitHub.

Configuración de un clúster de backend de Amazon EMR para los núcleos de Sparkmagic de SageMaker AI

Los núcleos de Sparkmagic requieren un clúster de Amazon EMR de backend. Si usas los núcleos de Sparkmagic sin el clúster de Amazon EMR de backend, recibirás el siguiente mensaje de error:

«The code failed because of a fatal error: Error sending http request and maximum retry encountered...»

Para configurar un clúster de Spark que se ejecute en Amazon EMR para conectarse a tu instancia de cuaderno, consulta Build Amazon SageMaker AI notebooks backed by Spark in Amazon EMR (Creación de cuadernos de Sagemaker AI respaldados por Spark en Amazon EMR).

Tras confirmar la conexión, ejecuta el siguiente comando para actualizar sagemaker-studio-analytics-extension:

pip install --upgrade sagemaker-studio-analytics-extension

Las versiones más recientes de sagemaker-studio-analytics-extension anulan el tiempo de espera predeterminado de 60 segundos de la sesión del servidor a 120 segundos. Para obtener más información, consulta Solucionar problemas de conexiones Livy que estén bloqueadas o defectuosas.

Después de actualizar la extensión, inicia un cuaderno de Jupyter con un núcleo de PySpark y prueba la conexión. Si la conexión se realiza correctamente, aparecerá un mensaje similar al siguiente:

«Iniciando la aplicación Spark... SparkSession está disponible como 'spark'»

Después de conectarte, importa PySpark para ejecutar tus cargas de trabajo.

Información relacionada

Definición de permisos de IAM para AWS Glue Studio

Creación de trabajos de AWS Glue con sesiones interactivas

OFICIAL DE AWSActualizada hace un año