Perte d'instances spot
Lorsque le fournisseur cloud réclame des instances de VM préemptibles, les exécuteurs sur ces instances sont arrêtés et toutes leurs tâches actives échouent. Spark doit réexécuter ces tâches, ce qui ralentit le job et peut entraîner des échecs de stage ou de job.
Utilisez cette page lorsque le Journal d’événements du compute indique que des instances de VM préemptibles ont été perdues ou récupérées. Si le journal d’événements montre que le compute a été redimensionné en raison du dimensionnement automatique, la suppression des exécuteurs est normale et ne constitue pas une erreur. Si le Logs d’événements n’explique pas la perte des exécuteurs, consultez Job échoué ou exécuteurs supprimés.
Réduire les pertes liées aux instances ponctuelles
Une perte fréquente d'instances de VM préemptibles peut signifier que le type d'instance a un taux de récupération élevé. Pour réduire les pertes, essayez les approches suivantes :
- Choisissez des types d'instance avec des taux de préemption plus bas. Passez à un type d'instance qui est préempté moins souvent.
- Arrêtez d’utiliser des VM préemptibles. Décochez la case Utiliser des instances préemptibles sous Performances avancées dans la configuration du compute. Pour contrôler si le compute bascule sur des instances à la demande lorsque les VM préemptibles ne sont pas disponibles, définissez
gcp_attributes.gcp_availability. Voir Instances préemptibles.
Utiliser des instances à la demande pour le driver et les charges de travail sensibles à la latence
Si le fournisseur cloud récupère le driver, le job échoue immédiatement. Databricks recommande d’utiliser une instance on-demand pour le nœud driver afin que le fournisseur cloud ne puisse pas la récupérer. Si vous utilisez un Pool d’instances VM préemptives pour les Worker, sélectionnez un Pool à la demande comme type de Driver . Voir Bonnes pratiques relatives aux pools.
Un Driver à la demande ne protège pas les Worker. Lorsque le fournisseur de services cloud réclame un worker, ses exécuteurs sont arrêtés et leurs tâches actives échouent. Le job continue, mais Spark doit réexécuter ces tâches, ce qui ralentit le job et peut entraîner des échecs de niveau étape ou job. Utilisez des instances de VM préemptibles uniquement pour les workloads qui peuvent tolérer des délais. Consultez Bonnes pratiques de configuration du compute classique.