Comment les terminaux AWS Glue de développement fonctionnent avec les ordinateurs portables SageMaker - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comment les terminaux AWS Glue de développement fonctionnent avec les ordinateurs portables SageMaker

L'un des moyens les plus courants d'accéder à vos terminaux de développement consiste à utiliser Jupyter sur des ordinateurs portables. SageMaker Le bloc-notes Jupyter est une application web open source largement utilisée pour la visualisation, l'analytique, le machine learning, etc. Un AWS Glue SageMaker bloc-notes vous offre une expérience de bloc-notes Jupyter avec des terminaux de AWS Glue développement. Dans le AWS Glue SageMaker bloc-notes, l'environnement du bloc-notes Jupyter est préconfiguré avec SparkMagicun plugin Jupyter open source permettant de soumettre des tâches Spark à un cluster Spark distant. Apache Livy est un service qui permet l'interaction avec un cluster Spark distant via une API REST. Dans le AWS Glue SageMaker bloc-notes, SparkMagic est configuré pour appeler l'API REST sur un serveur Livy exécuté sur un point de AWS Glue développement.

Le flux de texte suivant explique le fonctionnement de chaque composant :

AWS Glue SageMaker bloc-notes : (Jupyter → SparkMagic) → (réseau) → point de terminaison de AWS Glue développement : (Apache Livy → Apache Spark)

Une fois que vous avez exécuté votre script Spark écrit dans chaque paragraphe d'un bloc-notes Jupyter, le code Spark est soumis au serveur Livy via SparkMagic, puis une tâche Spark nommée « Livy-session-n » s'exécute sur le cluster Spark. Cette tâche s'appelle une séance Livy. La tâche Spark sera exécutée pendant que la séance du bloc-notes sera active. La tâche Spark sera terminée lorsque vous arrêterez le noyau Jupyter à partir du bloc-notes ou lorsque la séance aura expiré. Une tâche Spark est lancée par fichier (.ipynb) de bloc-notes.

Vous pouvez utiliser un seul point de AWS Glue développement avec plusieurs instances de SageMaker bloc-notes. Vous pouvez créer plusieurs fichiers de bloc-notes dans chaque instance de SageMaker bloc-notes. Lorsque vous ouvrez un fichier de bloc-notes et que vous exécutez les paragraphes, une session Livy est lancée par fichier de bloc-notes sur le cluster Spark via SparkMagic. Chaque séance Livy correspond à une seule tâche Spark.

Comportement par défaut pour les terminaux AWS Glue de développement et les blocs-notes SageMaker

Les tâches Spark s'exécutent en fonction de la configuration Spark. Il existe plusieurs manières de définir la configuration de Spark (par exemple, la configuration du cluster Spark, SparkMagic la configuration de Spark, etc.).

Par défaut, Spark alloue des ressources de cluster à une séance Livy en fonction de la configuration du cluster Spark. Dans les points de terminaison de développement AWS Glue, la configuration du cluster dépend du type de processus. Voici un tableau qui explique les configurations les plus courantes par type de tâche.

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

Le nombre maximum de programmes d’exécution Spark est calculé automatiquement par combinaison de DPU (ou NumberOfWorkers) et de type de processus.

Standard G.1X G.2X
Nombre maximal de programmes d’exécution Spark (DPU - 1) * 2 - 1 (NumberOfWorkers - 1) (NumberOfWorkers - 1)

Par exemple, si votre point de terminaison de développement a 10 processus et que le type de processus est G.1X, alors vous aurez 9 programmes d’exécution Spark et l'ensemble du cluster aura 90 Go de mémoire d'exécuteur puisque chaque exécuteur aura 10 Go de mémoire.

Quel que soit le type de nœud de processus spécifié, l'allocation dynamique des ressources Spark sera activée. Si un jeu de données est suffisamment volumineux, Spark peut allouer tous les programmes d'exécution à une seule séance Livy, car spark.dynamicAllocation.maxExecutors n'est pas défini par défaut. Cela signifie que d'autres séances Livy sur le même point de terminaison de développement attendront le lancement de nouveaux programmes d'exécution. Si le jeu de données est peu volumineux, Spark pourra allouer des programmes d'exécution à plusieurs séances Livy en même temps.

Note

Pour plus d'informations sur la façon dont les ressources sont allouées dans différents cas d'utilisation et sur la façon dont vous définissez une configuration pour modifier le comportement, consultez Configuration avancée : partage de points de terminaison de développement entre plusieurs utilisateurs.