Pourquoi le nœud principal de mon cluster Amazon EMR manque-t-il d’espace disque ?

Date de la dernière mise à jour : 08/07/2020

J'exécute des tâches Apache Spark sur un cluster Amazon EMR. Le nœud principal est presque à court d'espace disque. Comment est-ce possible ?

Solution

Vérifiez les causes courantes d'utilisation élevée de l'espace disque sur le nœud principal :

Fichiers locaux et temporaires de l'application Spark

Lorsque vous exécutez des tâches Spark, les applications Spark créent des fichiers locaux qui peuvent consommer le reste de l'espace disque sur le nœud principal. Exécutez la commande suivante sur le nœud maître pour afficher les 10 répertoires qui utilisent le plus d'espace disque.

sudo du -hsx * | sort -rh | head -10

Si les fichiers locaux consomment le reste de l'espace disque, dimensionnez votre cluster. Pour plus d'informations, consultez Dimensionnement des ressources de cluster.

Remarque : si le nombre de programmes d'exécution Spark n'augmente pas comme prévu, augmentez la capacité de stockage des volumes Amazon Elastic Block Store (Amazon EBS) qui sont attachés au nœud principal. Vous pouvez également ajouter d'autres volumes EBS au nœud principal.

Journaux d'application Spark et fichiers d'historique des tâches

Lorsque vous exécutez des tâches Spark, Spark crée des journaux d'application et des fichiers d'historique des tâches sur le HDFS. Ces journaux peuvent consommer le reste de l'espace disque sur le nœud principal. Pour résoudre ce problème, vérifiez les répertoires dans lesquels les journaux sont stockés et modifiez les paramètres de rétention, si nécessaire.

Les journaux d'application Spark, qui sont les journaux de conteneur YARN pour vos tâches Spark, sont situés dans /var/log/hadoop-yarn/apps sur le nœud principal. Spark déplace ces journaux vers le HDFS lorsque l'exécution de l'application est terminée. Par défaut, YARN conserve les journaux d'application sur le HDFS pendant 48 heures. Pour réduire la période de rétention :

  1. Connectez-vous au nœud principal en utilisant le protocole SSH.
  2. Ouvrez le fichier /etc/hadoop/conf/yarn-site.xml sur chaque nœud de votre cluster Amazon EMR (nœuds maître, principal et de tâches).
  3. Réduisez la valeur de la propriété yarn.log-aggregation.retain-seconds sur tous les nœuds.
  4. Redémarrez le démon ResourceManager. Pour plus d'informations, consultez Affichage et redémarrage d'Amazon EMR et des processus d'application (démons).

Remarque : une fois que Spark a copié les journaux de l'application sur le HDFS, ils restent sur le disque local afin que Log Pusher puisse transmettre les journaux vers Amazon Simple Storage Service (Amazon S3). La période de rétention par défaut est de quatre heures. Pour réduire la période de rétention, modifiez le fichier /etc/logpusher/hadoop.config.

Les fichiers d'historique des tâches Spark se trouvent dans /var/log/spark/apps sur le nœud principal. Lorsque le nettoyeur d'historique du système de fichiers s'exécute, Spark supprime les fichiers d'historique des tâches de plus de sept jours. Pour réduire la période de rétention par défaut :

  1. Connectez-vous au nœud principal en utilisant le protocole SSH.
  2. Ouvrez le fichier /etc/spark/conf/spark-defaults.conf sur le nœud maître.
  3. Réduisez la valeur de la propriété spark.history.fs.cleaner.maxAge.

Par défaut, le nettoyeur de l'historique du système de fichiers s'exécute une fois par jour. La fréquence est spécifiée dans la propriété spark.history.fs.cleaner.interval. Pour plus d'informations, consultez Monitoring and instrumentation dans la documentation Spark.