Direkt zum Inhalt

Wie konfiguriere ich SageMaker AI-Notebook-Instances für die Verwendung interaktiver AWS Glue-Sitzungen, Sparkmagic-Kernel oder PySparkProcessor zur Ausführung Big Data-Workloads?

Lesedauer: 4 Minute
0

Ich möchte eine Amazon SageMaker AI-Notebook-Instance so konfigurieren, dass sie interaktive AWS Glue-Sitzungen, PySparkProcessor- oder Sparkmagic-Kernel zur Ausführung von Big-Data-Workloads verwendet.

Lösung

Um eine SageMaker AI-Notebook-Instance für die Ausführung von Spark- und PySpark-Workloads zu konfigurieren, schließe eine der folgenden Auflösungen ab.

Interaktive AWS Glue-Sitzungen für Notebook-Instances konfigurieren

Für eine Serverless-Option zur Ausführung von Apache Spark- und PySpark-Workloads konfiguriere interaktive AWS Glue-Sitzungen für deine Notebook-Instances. Wenn du die Notebook-Instance startest, erstellt die interaktive Sitzung einen PySpark-Kernel und einen Spark-Kernel. Du kannst dann einen der installierten Kernel auf der Registerkarte Jupyter- oder JupyterLab-Anwendungs-Launcher verwenden.

Gewähre Berechtigungen für interaktive AWS Glue-Sitzungen

Führe die folgenden Schritte aus:

  1. Öffne die AWS Identity and Access Management (IAM)-Konsole.
  2. Wähle im Navigationsbereich unter Zugriffsverwaltung die Option Rollen aus.
  3. Wähle die Ausführungsrolle aus, die du für deine SageMaker AI-Notebook-Instance verwendest.
  4. Erstelle die folgende benutzerdefinierte Inline-IAM-Richtlinie im JSON-Editor:
    {
        "Version": "2012-10-17",		 	 	
        "Statement": [
            {
                "Sid": "uniqueStatementId",
    
                "Effect": "Allow",
                "Action": [
    	            "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "YOUR-IAM-ROLE-ARN"
            }
        ]
    }
    Hinweis: Ersetze YOUR-IAM-ROLE-ARN durch den Amazon-Ressourcennamen (ARN) der IAM-Ausführungsrolle deiner Notebook-Instance.
  5. Um der IAM-Rolle AWS Glue-Berechtigungen zu gewähren, wähle im Dropdownmenü Berechtigungen hinzufügen die Option Richtlinien anhängen aus. Suche dann nach AWSGlueSessionUserRestrictedServiceRole und wähle Richtlinien anhängen aus.
  6. Damit AWS Glue die IAM-Rolle übernehmen kann, wähle den Tab Vertrauensbeziehungen und füge dann glue.amazonaws.com zur Serviceliste hinzu. Vergewissere dich, dass deine Vertrauensrichtlinie dem folgenden Beispiel ähnelt:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "sagemaker.amazonaws.com",
                        "glue.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Interaktive AWS Glue-Sitzungen für Notebook-Instances installieren

Führe die folgenden Schritte aus:

  1. Um die AWS Glue-Kernel beim Startup automatisch zu installieren, erstelle das folgende Lifecycle-Konfigurationsskript:

    #!/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. Navigiere zu deiner Notebook-Instance und bestätige dann, dass sich die Instance nicht im InService-Status befindet.

  3. Um das Lifecycle-Konfigurationsskript anzuhängen, wähle Notebook-Instance-Einstellungen und dann Bearbeiten aus.

  4. Wähle unter Zusätzliche Konfiguration dein Lifecycle-Konfigurationsskript aus der Dropdownliste Lifecycle-Konfiguration aus.

  5. Wähle Notebook-Instance aktualisieren aus.
    Hinweis: Die Aktualisierung der Notebook-Instance kann mehrere Minuten dauern.

  6. Starte die Notebook-Instance.

  7. Öffne JupyterLab und wähle dann die Registerkarte Launcher.

  8. Wähle entweder den AWS Glue Spark- oder den AWS Glue PySpark-Kernel, um deine Daten-Workloads auszuführen.
    **Hinweis:**Nachdem du deinen Workload bearbeitet hast, fahre den Kernel in JupyterLab herunter, damit in AWS Glue keine weiteren Gebühren anfallen.

Weitere Informationen zur Konfiguration deiner interaktiven AWS Glue-Sitzung findest du unter Konfiguration interaktiver AWS Glue-Sitzungen für Jupyter- und AWS Glue Studio-Notebooks.

Konfiguriere PySparkProcessor für die Verarbeitung von SageMaker-AI-Jobs

Du kannst PySparkProcessor verwenden, um PySpark-Skripte als Verarbeitungsjobs auszuführen. Weitere Informationen findest du unter PySparkProcessor auf der SageMaker „Read the Docs“-Website.

**Hinweis:**Der PySparkProcessor verwendet vorgefertigte SageMaker AI Spark-Container. Du kannst nur die Argumente framework_version, py_version und container_version konfigurieren.

Zum Beispiel findest du Notebooks, die du verwenden kannst, unter sagemaker-spark-processing.ipynb auf der GitHub-Website.

Konfiguriere einen Amazon EMR-Backend-Cluster für SageMaker AI Sparkmagic-Kernel

Sparkmagic-Kernel benötigen einen Amazon EMR-Backend-Cluster. Wenn du Sparkmagic-Kernel ohne den Amazon EMR-Backend-Cluster verwendest, erhältst du die folgende Fehlermeldung:

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

Informationen zum Einrichten eines Spark-Clusters, der auf Amazon EMR ausgeführt wird, um eine Verbindung zu deiner Notebook-Instance herzustellen, findest du unter Erstellen von Amazon SageMaker AI-Notebooks, die von Spark unterstützt werden, in Amazon EMR.

Nachdem du die Verbindung bestätigt hast, führe den folgenden Befehl aus, um die sagemaker-studio-analytics-extension zu aktualisieren:

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

Die neuesten Versionen von sagemaker-studio-analytics-extension überschreiben das standardmäßige Zeitlimit für Serversitzungen von 60 Sekunden auf 120 Sekunden. Weitere Informationen findest du unter Problembehandlung bei hängenden oder fehlgeschlagenen Livy-Verbindungen.

Nachdem du die Erweiterung aktualisiert hast, starte ein Jupyter-Notebook mit einem PySpark-Kernel und teste die Verbindung. Wenn die Verbindung erfolgreich ist, wird eine Meldung angezeigt, die der folgenden ähnelt:

„Starting Spark application … SparkSession available as 'spark' “

Nachdem du eine Verbindung hergestellt hast, importiere PySpark, um deine Workloads auszuführen.

Ähnliche Informationen

IAM-Berechtigungen für AWS Glue Studio einrichten

AWS Glue-Jobs mit interaktiven Sitzungen erstellen

AWS OFFICIALAktualisiert vor 2 Monaten