Fonctionnement des points de terminaison de développement AWS Glue avec les blocs-notes SageMaker - AWS Glue

Fonctionnement des points de terminaison de développement AWS Glue avec les blocs-notes SageMaker

L'un des moyens les plus courants d'accéder à vos points de terminaison de développement consiste à utiliser Jupyter sur des blocs-notes SageMaker. Le bloc-notes Jupyter est une application web open source largement utilisée pour la visualisation, l'analytique, le machine learning, etc. Un bloc-notes AWS Glue SageMaker vous offre une expérience de bloc-notes Jupyter avec des points de terminaison de développement AWS Glue. Dans le bloc-notes AWS Glue SageMaker, l'environnement de bloc-notes Jupyter est préconfiguré avec SparkMagic, un plugin Jupyter open source qui permet d’envoyer 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 bloc-notes AWS Glue SageMaker, SparkMagic est configuré pour appeler l'API REST sur un serveur Livy exécuté sur un point de terminaison de développement AWS Glue.

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

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

Une fois que vous avez exécuté votre script Spark écrit dans chaque paragraphe sur un bloc-notes Jupyter, le code Spark est envoyé au serveur Livy via SparkMagic, puis une tâche Spark nommée « livy-séance-N » exécutée 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 terminaison de développement AWS Glue avec plusieurs instances de bloc-notes SageMaker. Vous pouvez créer plusieurs fichiers de bloc-notes dans chaque instance de bloc-notes SageMaker. Lorsque vous ouvrez un fichier de bloc-notes et exécutez les paragraphes, une séance 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 des points de terminaison de développement AWS Glue et des blocs-notes SageMaker

Les tâches Spark s'exécutent en fonction de la configuration Spark. Il existe plusieurs façons de définir la configuration Spark (par exemple, configuration du cluster Spark, configuration de SparkMagic, 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.