Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonctionnalité de mise à l’échelle automatique du pool Apache Spark pour Azure Synapse Analytics met automatiquement à l’échelle le nombre de nœuds d’une instance de cluster vers le haut et le bas. Lors de la création d’un pool Apache Spark pour Azure Synapse Analytics, un nombre minimal et maximal de nœuds, jusqu’à 200 nœuds, peut être défini lorsque la mise à l’échelle automatique est sélectionnée. La mise à l’échelle automatique surveille ensuite les besoins en ressources de la charge, et met à l’échelle le nombre de nœuds. Cette fonctionnalité ne fait pas l’objet d’une facturation supplémentaire.
Surveillance des métriques
La mise à l’échelle automatique surveille en permanence l’instance Spark et collecte les métriques suivantes :
| Unité de mesure | Descriptif |
|---|---|
| Total processeur en attente | Nombre total de cœurs requis pour démarrer l’exécution de tous les travaux en attente. |
| Mémoire en attente totale | Mémoire totale (en Mo) requise pour démarrer l’exécution de tous les travaux en attente. |
| Capacité CPU disponible totale | Somme de tous les cœurs inutilisés sur les nœuds actifs. |
| Mémoire libre totale | Somme de la mémoire inutilisée (en Mo) sur les nœuds actifs. |
| Mémoire utilisée par nœud | Charge sur un nœud. Un nœud sur lequel 10 Go de mémoire sont utilisés est considéré comme étant plus sollicité qu’un nœud avec 2 Go de mémoire utilisés. |
Les métriques ci-dessus sont vérifiées toutes les 30 secondes. La mise à l’échelle automatique prend des décisions d'augmentation et de diminution de la capacité en fonction de ces métriques.
Conditions d’échelle basées sur la charge
Lorsque les conditions suivantes sont détectées, la mise à l’échelle automatique émet une demande de mise à l’échelle :
| Montée en puissance | Réduction |
|---|---|
| « Total pending CPU » est supérieur à la valeur de « Total free CPU » pendant plus de 1 minute. | « Total pending CPU » est inférieur à la valeur de « Total free CPU » pendant plus de 2 minutes. |
| « Total pending memory » est supérieur à la valeur de « Total free memory » pendant plus de 1 minute. | « Total pending memory » est inférieur à la valeur de « Total free memory » pendant plus de 2 minutes. |
Pour le scale-up, le service de mise à l’échelle automatique Azure Synapse calcule le nombre de nouveaux nœuds nécessaires pour répondre aux exigences actuelles en matière de processeur et de mémoire, puis émet une demande de scale-up pour ajouter le nombre requis de nœuds.
Pour effectuer un scale-down, en fonction du nombre d’exécuteurs, de maîtres d’application par nœud, du processeur actuel et de la mémoire requise, la mise à l’échelle automatique émet une demande pour supprimer certains nœuds. Le service détecte également les nœuds qui sont candidats à la suppression en fonction de l’exécution actuelle du travail. L’opération de descente en puissance désactive tout d’abord les nœuds, puis les supprime du cluster.
Note
Remarque sur la mise à jour et l’application forcée de la configuration de la mise à l’échelle automatique à un pool Spark existant. Si forcer le nouveau paramètre dans le portail Azure ou ForceApplySetting dans PowerShell est activé, toutes les sessions Spark existantes sont arrêtées et les modifications de configuration sont appliquées immédiatement. Si cette option n’est pas sélectionnée, la configuration est appliquée aux nouvelles sessions Spark et les sessions existantes ne sont pas arrêtées.
Get started
Créer un pool Apache Spark serverless avec mise à l’échelle automatique
Pour activer la fonctionnalité de mise à l’échelle automatique, procédez comme suit dans le cadre du processus normal de création de pool :
Sous l’onglet De base, cochez la case Activer la mise à l’échelle automatique.
Entrez les valeurs souhaitées pour les propriétés suivantes :
- Nombre minimum de nœuds.
- Nombre maximum de nœuds.
Le nombre initial de nœuds est le nombre minimal. Cette valeur définit la taille initiale de l’instance lors de sa création. Le nombre minimal de nœuds ne peut pas être inférieur à trois.
Si vous le souhaitez, vous pouvez activer l’allocation dynamique d’exécuteurs dans des scénarios où les exigences de l’exécuteur sont très différentes selon les étapes d’un travail Spark ou le volume de données traitées varie avec le temps. En activant l’allocation dynamique des exécuteurs, nous pouvons utiliser la capacité en fonction des besoins.
Lors de l'activation de l'allocation dynamique, cela permet à la tâche de mettre à l'échelle le nombre d'exécuteurs entre le nombre minimum et maximum d'exécuteurs spécifiés.
Apache Spark active la configuration de l’allocation dynamique des exécuteurs via du code comme indiqué ci-dessous :
%%configure -f
{
"conf" : {
"spark.dynamicAllocation.maxExecutors" : "6",
"spark.dynamicAllocation.enabled": "true",
"spark.dynamicAllocation.minExecutors": "2"
}
}
Les valeurs par défaut spécifiées via le code remplacent les valeurs définies via l’interface utilisateur.
Dans cet exemple, si votre travail ne nécessite que deux exécuteurs, il n’utilise que deux exécuteurs. Lorsque le travail nécessite plus, il montera en puissance jusqu’à six exécuteurs (un pilote, six exécuteurs). Lorsque le travail n’a pas besoin des exécuteurs, il désaffecte les exécuteurs. S’il n’a pas besoin du nœud, il libère le nœud.
Note
MaxExecutors réserve le nombre d’exécuteurs configurés. Compte tenu de l’exemple, même si vous utilisez seulement 2, il réserve 6.
Ainsi, lors de l’activation de l’allocation dynamique, les exécuteurs procèdent à un scale-up ou scale-down en fonction de l’utilisation des exécuteurs. Cela garantit que les exécuteurs sont approvisionnés conformément aux besoins du travail en cours d’exécution.
Meilleures pratiques
Tenez compte de la latence des opérations de scale-up ou de scale-down
L’exécution d’une opération de mise à l’échelle peut prendre 1 à 5 minutes.
Préparer la réduction d'échelle
Pendant la mise à l’échelle vers le bas des instances, la mise à l’échelle automatique place les nœuds dans un état de désaffectation afin qu’aucun nouvel exécuteur ne puisse être lancé dessus.
Les travaux en cours d’exécution continueront jusqu’à leur conclusion. Les travaux en attente attendrons d’être planifiée comme d’habitude avec moins de nœuds disponibles.
Note
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érable, cette configuration peut être définie sur false.
Étapes suivantes
Démarrage rapide pour configurer un nouveau pool Spark Créer un pool Spark