Configurations des pools Apache Spark dans Azure Synapse Analytics
Un pool Spark est un ensemble de métadonnées qui définit les besoins en ressources de calcul et les caractéristiques de comportement associées lorsqu’une instance Spark est instanciée. Ces caractéristiques incluent entre autres le nom, le nombre de nœuds, la taille de nœud, le comportement de mise à l’échelle et la durée de vie. Un pool Spark en lui-même ne consomme pas de ressources. La création de pools Spark est gratuite. Les frais ne sont facturés qu’une fois qu’un travail Spark est exécuté sur le pool Spark cible et que l’instance Spark est instanciée à la demande.
Pour découvrir comment créer un pool Spark et afficher toutes ses propriétés, consultez Bien démarrer avec les pools Spark dans Synapse Analytics.
Calcul isolé
L’option de calcul isolé offre une plus de sécurité aux ressources de calcul Spark à partir de services non fiables en dédiant la ressource de calcul physique à un client unique. L’option de calcul isolé est la plus adaptée aux charges de travail qui nécessitent un niveau élevé d’isolement par rapport aux charges de travail des autres clients pour des raisons de conformité et d’exigences réglementaires, entre autres. L’option de calcul isolé est disponible uniquement avec la taille de nœud XXXLarge (80 vCPU/504 Go) et n’est disponible que dans les régions suivantes. L’option de calcul isolé peut être activée ou désactivée après la création du pool, bien que l’instance nécessite un redémarrage. Si vous envisagez d’activer cette fonctionnalité à l’avenir, assurez-vous que votre espace de travail Synapse est créé dans une région prise en charge par le calcul isolé.
- USA Est
- USA Ouest 2
- États-Unis - partie centrale méridionale
- Gouvernement des États-Unis – Arizona
- Gouvernement américain - Virginie
Nœuds
Une instance de pool Apache Spark se compose d’un nœud principal et de deux nœuds Worker ou plus avec un minimum de trois nœuds 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 432 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 l’instance nécessite un redémarrage.
Taille | vCore | Mémoire |
---|---|---|
Small | 4 | 32 Go |
Moyenne | 8 | 64 Go |
Large | 16 | 128 Go |
XLarge | 32 | 256 Go |
XXLarge | 64 | 432 Go |
XXX grande (calcul isolé) | 80 | 504 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 la fonctionnalité de mise à l’échelle automatique est activée, vous définissez le nombre minimal et maximal de nœuds à mettre à l’échelle. Lorsque la fonctionnalité de mise à l’échelle automatique est désactivée, le nombre de nœuds définis reste fixe. Ce paramètre peut être modifié après la création du pool, bien que l’instance nécessite un redémarrage.
Stockage de pool élastique
Les pools Apache Spark prennent désormais en charge le stockage de pool élastique. Le stockage de pool élastique permet au moteur Spark de surveiller le stockage temporaire du nœud Worker et d’ajouter des disques supplémentaires si nécessaire. Les pools Apache Spark utilisent le stockage sur disque temporaire tandis que le pool est instancié. Les travaux Spark écrivent des sorties de mappage aléatoires, mélangent les données et déversent des données sur des disques de machine virtuelle locaux. Des exemples d’opérations pouvant utiliser le disque local sont le tri, la mise en cache et la persistance. Lorsque l’espace disque temporaire de la machine virtuelle est insuffisant, les travaux Spark peuvent échouer en raison d’une erreur « Espace disque insuffisant » (java.io.IOException : Aucun espace libre sur le périphérique). Avec les erreurs « Espace disque insuffisant », une grande partie de la charge nécessaire pour empêcher l’échec des travaux bascule sur le client pour reconfigurer les travaux Spark (par exemple, ajuster le nombre de partitions) ou les clusters (par exemple, ajouter d’autres nœuds au cluster). Ces erreurs peuvent ne pas être cohérentes et l’utilisateur peut finir par expérimenter des charges lourdes dues aux travaux de production en cours d’exécution. Ce processus peut être coûteux pour l’utilisateur dans plusieurs dimensions :
- Temps perdu. Les clients doivent expérimenter des charges lourdes de configurations de travaux par le biais d’une version d’évaluation et d’une erreur et sont censés comprendre les métriques internes de Spark pour prendre la bonne décision.
- Ressources gaspillées. Étant donné que les travaux de production peuvent traiter une quantité variable de données, les travaux Spark peuvent échouer de manière non déterministe si les ressources ne sont pas surapprovisionnées. Par exemple, prenez en considération le problème d’asymétrie des données à cause duquel quelques nœuds peuvent nécessiter plus d’espace disque que d’autres. Actuellement dans Synapse, chaque nœud d’un cluster obtient la même taille d’espace disque et l’augmentation de l’espace disque sur tous les nœuds n’est pas une solution idéale et entraîne un gaspillage considérable.
- Ralentissement de l’exécution du travail. Dans le scénario hypothétique où nous résolvons le problème par des nœuds de mise à l’échelle automatique (en supposant que les coûts ne soient pas un problème pour le client final), l’ajout d’un nœud de calcul est toujours coûteux (prend quelques minutes) au lieu d’ajouter du stockage (prend quelques secondes).
Aucune action de votre part n’est requise, et vous devriez rencontrer moins d’échecs de travail en conséquence.
Notes
Le stockage de pool élastique Azure Synapse est actuellement en préversion publique. Pendant la préversion publique, l’utilisation du stockage de pool élastique n’est pas facturée.
Pause automatique
La fonctionnalité de pause automatique libère les ressources après une période d’inactivité définie, réduisant ainsi le coût global d’un pool Apache Spark. Le nombre de minutes d’inactivité peut être défini une fois que cette fonctionnalité est activée. La fonctionnalité de pause automatique est indépendante de la fonctionnalité de mise à l’échelle automatique. Les ressources peuvent être suspendues si la mise à l’échelle automatique est activée ou désactivée. Ce paramètre peut être modifié après la création du pool bien que les sessions actives devront être redémarrées.