Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation de la rotation des journaux des événements Spark
Avec Amazon EMR en version 6.3.0 et ultérieure, vous pouvez activer la fonctionnalité de rotation des journaux des événements Spark pour Amazon EMR on EKS. Au lieu de générer un seul fichier journal des événements, cette fonctionnalité effectue la rotation des fichiers en fonction de l'intervalle de temps configuré et supprime les fichiers journaux des événements les plus anciens.
La rotation des journaux des événements Spark peut vous aider à éviter les problèmes potentiels liés à un fichier journal des événements Spark volumineux généré par des tâches de longue durée ou des tâches en streaming. Par exemple, vous démarrez une tâche Spark de longue durée avec un journal des événements activé avec le paramètre persistentAppUI. Le pilote Spark génère un fichier journal des événements. Si la tâche s'exécute pendant des heures ou des jours et que l'espace disque sur le nœud Kubernetes est limité, le fichier journal des événements peut consommer tout l'espace disque disponible. L'activation de la fonctionnalité de rotation des journaux des événements Spark résout le problème en divisant le fichier journal en plusieurs fichiers et en supprimant les fichiers les plus anciens.
Note
Cette fonctionnalité n'est disponible qu'avec Amazon EMR on EKS. Amazon EMR fonctionnant sur Amazon EC2 ne prend pas en charge la rotation des journaux des événements Spark.
Note
Sur Amazon EMR sur EKS, la rotation du journal des événements basée sur le temps (les spark.eventLog.rotation.* paramètres décrits sur cette page) limite la croissance du journal des événements Spark en fonction d'un intervalle de temps, et constitue le mécanisme pris en charge pour ce faire. Le journal des événements évolutif open source basé sur la taille (spark.eventLog.rolling.*) n'est pas pris en charge pour le téléchargement du journal des événements sur Amazon EMR sur EKS. Lorsque le roulement est activé, le pilote Spark écrit des fichiers de segments en fonction de la taille. Le composant d'expédition de journaux géré par Amazon EMR on EKS (l'agent qui télécharge les journaux d'événements afin que les applications apparaissent sur le serveur d'historique Spark) ne collecte pas ces fichiers. Par conséquent, l'application n'apparaît pas dans le serveur d'historique Spark même si la tâche s'exécute correctement.
Si vos journaux d'événements n'apparaissent pas dans le serveur d'historique Spark, vérifiez s'il spark.eventLog.rolling.enabled est configuré et passez à la rotation des journaux d'événements comme décrit dans la section suivante.
Pour activer la fonctionnalité de rotation des journaux des événements Spark, configurez les paramètres Spark suivants :
-
spark.eventLog.rotation.enabled: active la rotation des journaux. Ce paramètre est désactivé par défaut dans le fichier de configuration de Spark. Réglez-le sur « true » pour activer cette fonctionnalité. -
spark.eventLog.rotation.interval: indique l'intervalle de temps pour la rotation des journaux. La valeur minimale est 60 secondes. La valeur par défaut est de 300 secondes. -
spark.eventLog.rotation.minFileSize: indique une taille de fichier minimale pour la rotation du fichier journal. La valeur minimale et par défaut est de 1 Mo. -
spark.eventLog.rotation.maxFilesToRetain: indique le nombre de fichiers journaux en rotation à conserver pendant le nettoyage. La plage valide est comprise entre 1 et 10. La valeur par défaut est 2.
Vous pouvez indiquer ces paramètres dans la section sparkSubmitParameters de l'API StartJobRun, comme le montre l'exemple ci-dessous.
"sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi --conf spark.eventLog.rotation.enabled=true --conf spark.eventLog.rotation.interval=300 --conf spark.eventLog.rotation.minFileSize=1m --conf spark.eventLog.rotation.maxFilesToRetain=2"
Migration du journal des événements continu vers la rotation
Si vous utilisez actuellement le journal des événements évolutif open source basé sur la taille, remplacez les spark.eventLog.rolling.* paramètres par les paramètres de rotation. La rotation limite le journal des événements par un intervalle de temps (avec une taille de fichier minimale) plutôt que simplement par taille de fichier. Choisissez donc un intervalle et une taille de fichier minimale adaptés au taux d'événements de votre tâche. Supprimez tous spark.eventLog.rolling.* les paramètres lorsque vous changez. Le tableau suivant associe chaque paramètre de roulement à son équivalent de rotation.
| Paramètre de roulement (non pris en charge) | Paramètre de rotation (pris en charge) |
|---|---|
spark.eventLog.rolling.enabled=true |
spark.eventLog.rotation.enabled=true |
spark.eventLog.rolling.maxFileSize(casquettes par taille) |
spark.eventLog.rotation.interval(en majuscules ; minimum 60 secondes, par défaut 300 secondes), utilisé avec spark.eventLog.rotation.minFileSize (minimum et par défaut 1 Mo) |
spark.eventLog.rolling.maxFilesToRetain |
spark.eventLog.rotation.maxFilesToRetain(plage valide de 1 à 10, par défaut 2) |