Passer au contenu

Comment configurer les instances de bloc-notes SageMaker AI pour utiliser les sessions interactives AWS Glue, les noyaux Sparkmagic ou PySparkProcessor pour exécuter des charges de travail de big data ?

Lecture de 5 minute(s)
0

Je souhaite configurer une instance de bloc-notes Amazon SageMaker AI pour utiliser les sessions interactives AWS Glue, PySparkProcessor ou les noyaux Sparkmagic pour exécuter des charges de travail de big data.

Résolution

Pour configurer une instance de bloc-notes SageMaker AI afin d'exécuter des charges de travail Spark et PySpark, effectuez l'une des résolutions suivantes.

Configurer les sessions interactives AWS Glue pour les instances de bloc-notes

Pour bénéficier d'une option sans serveur permettant d'exécuter les charges de travail Apache Spark et PySpark, configurez des sessions interactives AWS Glue pour vos instances de bloc-notes. Lorsque vous démarrez votre instance de bloc-notes, la session interactive crée un noyau PySpark et un noyau Spark. Vous pouvez ensuite utiliser l'un des noyaux installés depuis l'onglet Lanceur d'applications Jupyter ou JupyterLab.

Accorder des autorisations pour les sessions interactives AWS Glue

Procédez comme suit :

  1. Ouvrez la console Gestion des identités et des accès AWS (AWS IAM).
  2. Dans le volet de navigation, sous Gestion des accès, choisissez Rôles.
  3. Sélectionnez le rôle d'exécution que vous utilisez pour votre instance de bloc-notes SageMaker AI.
  4. Créez la politique IAM personnalisée en ligne suivante dans l'éditeur JSON :
    {
        "Version": "2012-10-17",		 	 	
        "Statement": [
            {
                "Sid": "uniqueStatementId",
    
                "Effect": "Allow",
                "Action": [
    	            "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "YOUR-IAM-ROLE-ARN"
            }
        ]
    }
    Remarque : Remplacez YOUR-IAM-ROLE-ARN par l’Amazon Resource Name (ARN) du rôle d'exécution IAM de votre instance de bloc-notes.
  5. Pour accorder des autorisations AWS Glue au rôle IAM, choisissez Attacher des politiques dans le menu déroulant Ajouter des autorisations. Puis, recherchez AwsGlueSessionUserRestrictedServiceRole et choisissez Attacher des politiques.
  6. Pour autoriser AWS Glue à assumer le rôle IAM, choisissez l'onglet Relations d’approbation, puis ajoutez glue.amazonaws.com à la liste de services. Vérifiez que votre politique d’approbation est similaire à l'exemple suivant :
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "sagemaker.amazonaws.com",
                        "glue.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Installer des noyaux de sessions interactives AWS Glue dans des instances de bloc-notes

Procédez comme suit :

  1. Pour installer automatiquement les noyaux AWS Glue au démarrage, créez le script de configuration du cycle de vie suivant :

    #!/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. Accédez à l'instance de votre bloc-notes, puis vérifiez que l'instance n'est pas à l’état En service.

  3. Pour attacher le script de configuration du cycle de vie, choisissez les paramètres de l'instance de bloc-notes, puis choisissez Modifier.

  4. Sous Configuration supplémentaire, sélectionnez votre script de configuration du cycle de vie dans la liste déroulante Configuration du cycle de vie.

  5. Choisissez Mettre à jour l'instance de bloc-notes.
    Remarque : La mise à jour de l'instance de bloc-notes peut prendre plusieurs minutes.

  6. Sélectionnez votre instance de bloc-notes.

  7. Ouvrez JupyterLab, puis choisissez l'onglet Lanceur.

  8. Choisissez le noyau AWS Glue Spark ou AWS Glue PySpark pour exécuter vos charges de travail de données.
    Remarque : Après avoir traité votre charge de travail, arrêtez le noyau dans JupyterLab afin de ne pas continuer à vous facturer dans AWS Glue.

Pour plus d'informations sur la configuration de votre session interactive AWS Glue, consultez la section Configuration des sessions interactives AWS Glue pour les blocs-notes Jupyter et AWS Glue Studio.

Configurer PySparkProcessor pour traiter les tâches SageMaker AI

Vous pouvez utiliser PySparkProcessor pour exécuter des scripts PySpark en tant que tâches de traitement. Pour plus d'informations, consultez la page PySparkProcessor sur le site Web de SageMaker Read the Docs.

Remarque : Le PySparkProcessor utilise des conteneurs SageMaker AI Spark prédéfinis. Vous ne pouvez configurer que les arguments framework_version, py_version et container_version.

Pour des exemples de blocs-notes que vous pouvez utiliser, consultez la page sagemaker-spark-processing.ipynb sur le site de GitHub.

Configurer un cluster principal Amazon EMR pour les noyaux SageMaker AI Sparkmagic

Les noyaux Sparkmagic nécessitent un cluster Amazon EMR principal. Si vous utilisez des noyaux Sparkmagic sans le cluster Amazon EMR principal, le message d'erreur suivant s'affiche :

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

Pour configurer un cluster Spark qui s'exécute sur Amazon EMR afin de se connecter à votre instance de bloc-notes, consultez la section Créer des blocs-notes Amazon SageMaker AI soutenus par Spark dans Amazon EMR.

Après avoir confirmé la connexion, exécutez la commande suivante pour mettre à niveau sagemaker-studio-analytics-extension :

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

Les dernières versions de sagemaker-studio-analytics-extension remplacent le délai d'expiration par défaut de la session serveur de 60 secondes à 120 secondes. Pour plus d'informations, consultez la section Résoudre les problèmes liés aux connexions Livy bloquées ou défaillantes.

Après avoir mis à jour l'extension, lancez un bloc-notes Jupyter avec un noyau PySpark et testez la connexion. Si la connexion est établie, un message similaire au suivant s'affiche :

« Starting Spark application … SparkSession available as 'spark' »

Une fois connecté, importez PySpark pour exécuter vos charges de travail.

Informations connexes

Configurer des autorisations IAM pour AWS Glue Studio

Création de tâches AWS Glue à l'aide de sessions interactives

AWS OFFICIELA mis à jour il y a 3 mois