Qu’est-ce que le calcul Spark dans Microsoft Fabric ?

S’applique à : l’engineering et la science des données dans Microsoft Fabric

Les expériences d’engineering et de science des données de Microsoft Fabric fonctionnent sur une plateforme de calcul Spark complètement managée. Cette plateforme est conçue pour offrir une vitesse et une efficacité inégalées. Avec les pools de démarrage, vous pouvez vous attendre à une initialisation rapide de la session Spark, généralement en 5 à 10 secondes, sans avoir besoin de configuration manuelle. Vous bénéficiez également de la flexibilité nécessaire pour personnaliser les pools Spark en fonction de vos exigences spécifiques en matière d'engineering et de science des données. La plateforme offre une expérience d’analytique optimisée et personnalisée.

Image d’une plateforme de calcul Spark avec des pools de démarrage et des pools Spark personnalisés.

Pools de démarrage

Les pools de démarrage sont un moyen simple et rapide d’utiliser Spark sur la plateforme Microsoft Fabric en quelques secondes. Vous pouvez utiliser des sessions Spark immédiatement, au lieu d’attendre que Spark configure les nœuds pour vous, ce qui vous permet d’en faire plus avec les données et d’obtenir des informations plus rapidement.

Image d’un tableau montrant la configuration d’un pool de démarrage.

Les pools de démarrage disposent de clusters Spark qui sont toujours actifs et prêts à répondre à vos requêtes. Ils utilisent des nœuds moyens qui effectuent un scale-up dynamique en fonction des besoins de vos travaux Spark.

Diagramme montrant la conception de haut niveau des pools de démarrage.

Les pools de démarrage disposent également de paramètres par défaut qui vous permettent d’installer rapidement des bibliothèques sans ralentir l’heure de début de la session. Toutefois, si vous souhaitez utiliser des propriétés ou des bibliothèques Spark personnalisées supplémentaires à partir de votre espace de travail ou de vos paramètres de capacité, Spark met plus de temps à obtenir les nœuds pour vous. En ce qui concerne la facturation et la consommation de capacité, vous êtes facturé pour la consommation de capacité lorsque vous commencez à exécuter votre notebook ou la définition de tâche Spark. Vous n'êtes pas facturé pour la durée d'inactivité des clusters dans le pool.

Diagramme montrant les étapes générales de la facturation des pools de démarrage.

Par exemple, si vous soumettez une tâche de bloc-notes à un pool de démarrage, vous êtes facturé uniquement pour la période pendant laquelle la session de bloc-notes est active. Le temps facturé n'inclut pas le temps d'inactivité ni le temps nécessaire à la personnalisation de la session avec le contexte Spark.

Spark pools

Un pool Spark est un moyen d’indiquer à Spark le type de ressources dont vous avez besoin pour vos tâches d’analyse de données. Vous pouvez donner un nom à votre pool Spark et choisir le nombre et la taille des nœuds (les machines qui effectuent le travail). Vous pouvez également indiquer à Spark comment ajuster le nombre de nœuds en fonction de la quantité de travail dont vous disposez. La création d’un pool Spark est gratuite. vous payez uniquement lorsque vous exécutez une tâche Spark sur le pool, puis Spark configure les nœuds pour vous.

Si vous n'utilisez pas votre pool Spark pendant 2 minutes après l'expiration de votre session, votre pool Spark sera libéré. Cette période d’expiration de session par défaut est définie sur 20 minutes et vous pouvez la modifier si vous le souhaitez. Si vous êtes administrateur d’espace de travail, vous pouvez également créer des pools Spark personnalisés pour votre espace de travail et en faire l’option par défaut pour les autres utilisateurs. De cette façon, vous pouvez gagner du temps et éviter de configurer un nouveau pool Spark chaque fois que vous exécutez une tâche Notebook ou Spark. Les pools Spark personnalisés prennent environ trois minutes pour démarrer, car Spark doit obtenir les nœuds d'Azure.

Vous pouvez même créer des pools Spark à nœud unique, en définissant le nombre minimum de nœuds sur un, de sorte que le pilote et l'exécuteur s'exécutent dans un seul nœud fourni avec une HA restaurable et adapté aux petites charges de travail.

La taille et le nombre de nœuds que vous pouvez avoir dans votre pool Spark personnalisé dépendent de votre capacité Microsoft Fabric. La capacité est une mesure de la puissance de calcul que vous pouvez utiliser dans Azure. Deux vCores Spark (une unité de puissance de calcul pour Spark) équivalent à une unité de capacité. Par exemple, une capacité Fabric SKU F64 a 64 unités de capacité, ce qui équivaut à 128 vCores Spark. Vous pouvez utiliser ces vCores Spark pour créer des nœuds de différentes tailles pour votre pool Spark personnalisé, tant que le nombre total de vCores Spark ne dépasse pas 128.

Les pools Spark sont facturés comme des pools de démarrage ; vous ne payez pas pour les pools Spark personnalisés que vous avez créés, sauf si vous disposez d'une session Spark active créée pour exécuter un notebook ou une définition de tâche Spark. Vous n'êtes facturé que pour la durée de vos exécutions de tâches. Vous n'êtes pas facturé pour des étapes telles que la création et la désallocation du cluster une fois le travail terminé.

Diagramme montrant les étapes générales de la facturation des pools personnalisés.

Par exemple, si vous soumettez une tâche de bloc-notes à un pool Spark personnalisé, vous n'êtes facturé que pour la période pendant laquelle la session est active. La facturation de cette session de notebook s'arrête une fois la session Spark arrêtée ou expirée. Vous n'êtes pas facturé pour le temps nécessaire à l'acquisition des instances de cluster à partir du cloud ni pour le temps nécessaire à l'initialisation du contexte Spark.

Configurations de pool personnalisées possibles pour F64 basées sur l’exemple précédent :

Capacité SKU de Fabric Unités de capacité vCores Spark Taille du nœud Nombre maximum de nœuds
F64 64 384 Petite 96
F64 64 384 Moyenne 48
F64 64 384 grand 24
F64 64 384 X-Large 12
F64 64 384 XX-Large 6

Remarque

Pour créer des pools personnalisés, vous avez besoin d’autorisations d’administrateur pour l’espace de travail. Et l’administrateur de capacité Microsoft Fabric doit accorder des autorisations pour permettre aux administrateurs de l’espace de travail de dimensionner leurs pools Spark personnalisés. Pour en savoir plus, consultez Prise en main des pools Spark personnalisés dans Fabric

Nœuds

Une instance de pool Apache Spark se compose d’un nœud principal et de nœuds Worker avec un minimum d’un nœud dans une instance Spark. Le nœud principal exécute des services de gestion supplémentaires tels que Livy, Yarn Resource Manager, Zookeeper et le pilote Spark. Tous les nœuds exécutent des services tels que l’agent de nœud et Yarn Node Manager. Tous les nœuds Worker exécutent le service Spark Executor.

Tailles de nœuds

Un pool Spark peut être défini avec des tailles de nœuds allant d’un petit nœud de calcul (avec 4 vCore et 32 Go de mémoire) jusqu’à un nœud de calcul important (avec 64 vCore et 512 Go de mémoire par nœud). Les tailles de nœud peuvent être modifiées après la création du pool bien que la session doive être redémarrée.

Taille vCore Mémoire
Small 4 32 Go
Moyenne 8 64 Go
Large 16 128 Go
X-Large 32 256 Go
XX-Large 64 512 Go

Mise à l’échelle automatique

La mise à l’échelle automatique des pools Apache Spark permet d’effectuer un scale-up et un scale-down automatique des ressources de calcul en fonction de la quantité d’activité. Lorsque vous activez la fonctionnalité de mise à l'échelle automatique, vous définissez le nombre minimum et maximum de nœuds à mettre à l'échelle. Lorsque vous désactivez la fonctionnalité de mise à l'échelle automatique, le nombre de nœuds défini reste fixe. Vous pouvez modifier ce paramètre après la création du pool, même si vous devrez peut-être redémarrer l'instance.

Remarque

Par défaut, spark.yarn.executor.decommission.enabled a la valeur true, ce qui permet l’arrêt automatique des nœuds sous-utilisés pour optimiser l’efficacité du calcul. Si le scale-down moins agressif est préféré, cette configuration peut être définie sur false

Ventilation dynamique

L’allocation dynamique permet à l’application Spark de demander davantage d’exécuteurs si les tâches dépassent la charge que les exécuteurs actuels peuvent supporter. Il libère également les exécuteurs lorsque les tâches sont terminées et si l'application Spark passe à l'état inactif. Les utilisateurs d'entreprise ont souvent du mal à régler les configurations de l'exécuteur, car elles sont très différentes selon les différentes étapes du processus d'exécution d'une tâche Spark. Ces configurations dépendent également du volume de données traitées, qui change de temps à autre. Vous pouvez activer l'option d'allocation dynamique des exécuteurs dans le cadre de la configuration du pool, ce qui permet l'allocation automatique des exécuteurs à l'application Spark en fonction des nœuds disponibles dans le pool Spark.

Lorsque vous activez l'option d'allocation dynamique pour chaque application Spark soumise, le système réserve des exécuteurs pendant l'étape de soumission de la tâche en fonction du nombre maximum de nœuds. Vous spécifiez le nombre maximal de nœuds pour prendre en charge des scénarios de mise à l'échelle automatique réussis.