Salta al contenuto

Come posso configurare istanze del notebook SageMaker AI per eseguire carichi di lavoro con dati di grandi dimensioni utilizzando sessioni interattive di AWS Glue, kernel Sparkmagic o PySparkProcessor?

5 minuti di lettura
0

Desidero configurare un'istanza del notebook Amazon SageMaker AI per eseguire carichi di lavoro con dati di grandi dimensioni utilizzando sessioni interattive di AWS Glue, PySparkProcessor o kernel Sparkmagic.

Risoluzione

Per eseguire carichi di lavoro con Spark e PySpark configurando un'istanza del notebook SageMaker AI, completa una delle seguenti risoluzioni.

Configura sessioni interattive di AWS Glue per le istanze del notebook

Per eseguire carichi di lavoro con Apache Spark e PySpark in modalità serverless, configura sessioni interattive di AWS Glue per le istanze del notebook. Quando avvii l'istanza del notebook, la sessione interattiva crea un kernel PySpark e un kernel Spark. Puoi quindi utilizzare uno dei kernel installati dalla scheda Launcher (Utilità di avvio) dell'applicazione Jupyter o JupyterLab.

Concedi le autorizzazioni per le sessioni interattive di AWS Glue

Completa i seguenti passaggi:

  1. Apri la console AWS Identity and Access Management (AWS IAM).
  2. Nel pannello di navigazione, scegli Ruoli in Gestione degli accessi.
  3. Seleziona il ruolo di esecuzione che utilizzi per l'istanza del notebook SageMaker AI.
  4. Crea la seguente policy IAM personalizzata inline nell'editor JSON:
    {
        "Version": "2012-10-17",		 	 	
        "Statement": [
            {
                "Sid": "uniqueStatementId",
    
                "Effect": "Allow",
                "Action": [
    	            "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "YOUR-IAM-ROLE-ARN"
            }
        ]
    }
    Nota: sostituisci YOUR-IAM-ROLE-ARN con il nome della risorsa Amazon (ARN) del ruolo di esecuzione IAM dell'istanza del notebook.
  5. Per concedere al ruolo IAM le autorizzazioni per AWS Glue, scegli Collega policy dal menu a discesa Aggiungi autorizzazioni. Quindi cerca AwsGlueSessionUserRestrictedServiceRole e scegli Collega policy.
  6. Per consentire ad AWS Glue di assumere il ruolo IAM, scegli la scheda Relazioni di attendibilità, quindi aggiungi glue.amazonaws.com all'elenco dei servizi. Verifica che la policy di attendibilità sia simile alla seguente:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "sagemaker.amazonaws.com",
                        "glue.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Installa i kernel delle sessioni interattive di AWS Glue nelle istanze del notebook

Completa i seguenti passaggi:

  1. Per installare automaticamente i kernel di AWS Glue durante l'avvio, crea il seguente script di configurazione del ciclo di vita:

    #!/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. Passa all'istanza del notebook, quindi verifica che l'istanza non sia nello stato InService.

  3. Per collegare lo script di configurazione del ciclo di vita, scegli Impostazioni dell'istanza notebook, quindi seleziona Modifica.

  4. In Configurazione aggiuntiva, seleziona lo script di configurazione del ciclo di vita dall'elenco a discesa Configurazione del ciclo di vita.

  5. Scegli Aggiorna l'istanza notebook.
    Nota: l'aggiornamento dell'istanza del notebook può richiedere diversi minuti.

  6. Avvia l'istanza del notebook.

  7. Apri JupyterLab, quindi scegli la scheda Launcher (Utilità di avvio).

  8. Per eseguire carichi di lavoro con dati, scegli il kernel Spark o PySpark di AWS Glue.
    Nota: dopo aver elaborato il carico di lavoro, chiudi il kernel in JupyterLab in modo da non continuare a sostenere costi per AWS Glue.

Per ulteriori informazioni sulla configurazione di una sessione interattiva di AWS Glue, consulta Configurazione delle sessioni interattive di AWS Glue per Jupyter e notebook AWS Glue Studio.

Configura PySparkProcessor per elaborare processi SageMaker AI

Puoi utilizzare PySparkProcessor per eseguire script di PySpark come processi di elaborazione. Per ulteriori informazioni, consulta PySparkProcessor sul sito web SageMaker Read the Docs.

Nota: PySparkProcessor utilizza container SageMaker AI Spark predefiniti. Puoi configurare solo gli argomenti framework_version, py_version e container_version.

Per esempi di notebook che puoi utilizzare, consulta sagemaker-spark-processing.ipynb sul sito web GitHub.

Configura un cluster Amazon EMR di backend per i kernel Sparkmagic di SageMaker AI

I kernel Sparkmagic richiedono un cluster Amazon EMR di backend. Se utilizzi i kernel Sparkmagic senza il cluster Amazon EMR di backend, ricevi il seguente messaggio di errore:

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

Per connetterti all'istanza del notebook configurando un cluster Spark eseguito su Amazon EMR, consulta Build Amazon SageMaker notebooks backed by Spark in Amazon EMR (Come creare notebook Amazon SageMaker AI supportati da Spark in Amazon EMR).

Dopo aver verificato la connessione, esegui questo comando per aggiornare sagemaker-studio-analytics-extension:

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

Le ultime versioni di sagemaker-studio-analytics-extension sostituiscono il timeout predefinito di 60 secondi della sessione del server portandolo a 120 secondi. Per ulteriori informazioni, consulta Risolvi i problemi relativi alle connessioni Livy che si bloccano o non funzionano.

Dopo aver aggiornato l'estensione, avvia un notebook Jupyter con un kernel PySpark e verifica la connessione. Se la connessione ha esito positivo, ricevi un messaggio simile al seguente:

"Starting Spark application … SparkSession available as 'spark' "

Dopo la connessione, importa PySpark per eseguire i carichi di lavoro.

Informazioni correlate

Impostazione delle autorizzazioni IAM per AWS Glue Studio

Creazione di processi AWS Glue con sessioni interattive

AWS UFFICIALEAggiornata 6 mesi fa