Je souhaite résoudre un problème lié à une tâche Amazon EMR sans serveur qui ne démarre pas, qui s'exécute lentement ou qui est bloquée à l'état EN SUSPENS.
Brève description
Un démarrage à froid se produit lorsque les ressources mettent du temps à être mises en service parce qu'un système est inactif ou qu'il est mis à l’échelle à partir d'une base faible.
Si vous soumettez une tâche et que les travaux d'InitialCapacity sont disponibles, la tâche utilise les ressources InitialCapacity pour s'exécuter. Si une autre tâche utilise les ressources initialCapacity, l'application Amazon EMR sans serveur demande des travaux supplémentaires dans la limite du quota maximum.
Résolution
Pour résoudre les problèmes liés à une tâche Amazon EMR sans serveur qui ne démarre pas, s'exécute lentement ou est bloquée à l’état EN SUSPENS, effectuez les actions suivantes :
- Pour que vos pilotes et vos travaux soient prêts à réagir rapidement et à démarrer immédiatement votre application, utilisez la capacité préinitialisée.
- Configurez une initialCapacity appropriée pour Hive et Spark.
- Configurez différentes tailles pour les pilotes et les exécuteurs.
- Pour augmenter votre tâche, spécifiez la capacité maximale de votre processeur, de votre mémoire et de votre disque.
- Pour éviter que les ressources ne soient inactives, alignez la taille de vos conteneurs avec celle de vos travaux de capacité préinitialisée. Par exemple, assurez-vous que la taille de vos exécutions Spark est la même que celle de vos travaux de capacité préinitialisée.
- Pour déterminer les performances de votre application et identifier les goulots d'étranglement potentiels, vérifiez les étapes et les périodes de chaque étape dans l'interface utilisateur Spark ou l'interface utilisateur Hive Tez. Pour plus d'informations, consultez les sections Surveillance au niveau des travaux et Résolution des problèmes et optimisation des performances de Spark.
- Suivez les bonnes pratiques de Spark et les bonnes pratiques de Hive. Pour les versions 7.1.0 et ultérieures d'Amazon EMR, utilisez des disques avec optimisation du mode aléatoire lorsque vous exécutez des tâches Apache Spark ou Hive afin d'améliorer les performances des charges de travail gourmandes en I/O.
- Pour résoudre les échecs de tâches, choisissez la manière dont Amazon EMR sans serveur stocke et gère vos journaux d’application.
- Modifiez ou désactivez la fonction de configuration de l'arrêt automatique. La valeur par défaut est fixée à 15 minutes.
- Pour éviter les goulots d’étranglement lorsque votre tâche nécessite immédiatement une simultanéité élevée, n'utilisez pas d’instances spark.executor.instances qui sont définies à 1.
- Pour améliorer les performances de votre tâche, augmentez la valeur de spark.dynamicAllocation.minExecutors lorsque spark.dynamicAllocation.enabled est vrai. Augmentez également la valeur de spark.executor.instances lorsque spark.dynamicAllocation.enabled est défini sur faux.