Le cluster Amazon EMR se termine par NO_SLAVE_LEFT et les nœuds principaux FAILED_BY_MASTER - Amazon EMR

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.

Le cluster Amazon EMR se termine par NO_SLAVE_LEFT et les nœuds principaux FAILED_BY_MASTER

Cela se produit généralement en raison de l'arrêt de la protection de la résiliation et tous les nœuds principaux dépassent la capacité de stockage de disque spécifiée par un seuil d'utilisation maximal dans la classification de configuration yarn-site, qui correspond au fichier yarn-site.xml. Par défaut, cette valeur est 90 %. Lorsque l'utilisation du disque pour un nœud principal dépasse le seuil d'utilisation, le service de NodeManager santé YARN signale le nœud commeUNHEALTHY. Lorsqu'il est dans cet état, Amazon EMR met le nœud sur la liste noire et n'y alloue pas de conteneurs YARN. Si le nœud reste non sain pendant 45 minutes, Amazon EMR marque l'instance Amazon EC2 rattachée pour la terminaison en tant que FAILED_BY_MASTER. Lorsque toutes les instances Amazon EC2 rattachées à des nœuds principaux sont marquées pour la résiliation, le cluster se résilie avec l'état NO_SLAVE_LEFT, car il n'y a pas de ressources pour exécuter des tâches.

Le dépassement de l'utilisation du disque sur un nœud principal peut entraîner une réaction en chaîne. Si un seul nœud dépasse le seuil d'utilisation du disque à cause de HDFS, d'autres nœuds sont également susceptibles d'être proches du seuil. Le premier nœud dépasse le seuil d'utilisation de disque, donc Amazon EMR le met sur la liste noire. Cela augmente la charge de l'utilisation du disque pour les nœuds restants, car ils commenceront à répliquer des données HDFS entre eux qu'ils ont perdues du nœud sur la liste noire. Chaque nœud devient ensuite UNHEALTHY de la même manière et le cluster se résilie finalement.

Meilleures pratiques et recommandations

Configuration du matériel de cluster avec un stockage adéquat

Lorsque vous créez un cluster, assurez-vous qu'il y ait suffisamment de nœuds principaux et que chacun possède suffisamment de stockage d'instance et de volumes de stockage EBS pour HDFS. Pour de plus amples informations, veuillez consulter Calcul de la capacité HDFS requise pour un cluster. Vous pouvez également ajouter manuellement des instances principales à des groupes d'instances existants ou en utilisant la mise à l'échelle automatique. Les nouvelles instances possèdent la même configuration de stockage que d'autres instances dans le groupe d'instances. Pour de plus amples informations, veuillez consulter Utilisez le dimensionnement du cluster Amazon EMR pour vous adapter à l'évolution des charges de travail.

Activer la protection de la résiliation

Activer la protection de la résiliation. De cette façon, si un nœud principal est placé sur liste noire, vous pouvez vous connecter à l'instance Amazon EC2 rattachée à l'aide de SSH pour diagnostiquer les problèmes et récupérer les données. Si vous activez la protection de la résiliation, sachez qu'Amazon EMR ne remplace pas l'instance Amazon EC2 par une nouvelle instance. Pour de plus amples informations, veuillez consulter Utilisation de la protection contre la résiliation pour protéger vos clusters Amazon EMR d'un arrêt accidentel.

Créer une alarme pour la CloudWatch métrique MRUnhealthy Nodes

Cette métrique indique le nombre de nœuds de rapports d'un état UNHEALTHY. Elle est équivalente à la métrique YARN mapred.resourcemanager.NoOfUnhealthyNodes. Vous pouvez configurer une notification pour cette alarme afin de vous avertir des nœuds qui ne sont pas sains avant que le délai d'attente de 45 minutes soit atteint. Pour de plus amples informations, veuillez consulter Surveillance des métriques Amazon EMR avec CloudWatch.

Affiner les paramètres à l'aide de yarn-site

Les paramètres ci-dessous peuvent être ajustés en fonction des exigences de votre application. Par exemple, vous pouvez augmenter le seuil d'utilisation du disque lorsqu'un nœud signale un état UNHEALTHY en augmentant la valeur de yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage.

Vous pouvez configurer ces valeurs lorsque vous créez un cluster à l'aide de la classification de configuration yarn-site. Pour de plus amples informations, veuillez consulter Configuration des applications dans le guide de version Amazon EMR. Vous pouvez également vous connecter aux instances Amazon EC2 rattachées à des nœuds principaux à l'aide de SSH, puis ajoutez les valeurs dans /etc/hadoop/conf.empty/yarn-site.xml à l'aide d'un éditeur de texte. Après avoir effectué la modification, vous devez redémarrer hadoop-yarn-nodemanager comme indiqué ci-dessous.

Important

Lorsque vous redémarrez le NodeManager service, les conteneurs YARN actifs sont détruits sauf yarn.nodemanager.recovery.enabled s'ils sont configurés pour true utiliser la classification de yarn-site configuration lors de la création du cluster. Vous devez également spécifier le répertoire dans lequel stocker l'état de conteneur à l'aide de la propriété yarn.nodemanager.recovery.dir.

sudo /sbin/stop hadoop-yarn-nodemanager sudo /sbin/start hadoop-yarn-nodemanager

Pour plus d'informations sur les propriétés actuelles de yarn-site et les valeurs par défaut, consultez Paramètres YARN par défaut dans la documentation Apache Hadoop.

Propriété Valeur par défaut Description

yarn.nodemanager. disk-health-checker.intervalle en ms

120000

La fréquence (en secondes) à laquelle la vérification de l'état du disque est exécutée.

yarn.nodemanager. disk-health-checker. min-healthy-disks

0.25

Fraction minimale du nombre de disques qui doivent être sains pour NodeManager lancer de nouveaux conteneurs. Cela correspond à la fois à yarn.nodemanager.local-dirs (par défaut, /mnt/yarn dans Amazon EMR) et yarn.nodemanager.log-dirs (par défaut /var/log/hadoop-yarn/containers, qui est symlinked à mnt/var/log/hadoop-yarn/containers dans Amazon EMR).

yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage

90.0

Le pourcentage maximal d'utilisation d'espace de disque autorisée après laquelle un disque est marqué comme défectueux. Les valeurs peuvent aller de 0.0 à 100.0. Si la valeur est supérieure ou égale à 100, NodeManager le disque est plein. Cela s'applique à yarn-nodemanager.local-dirs et yarn.nodemanager.log-dirs.

yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb

0

L'espace minimal qui doit être disponible sur un disque pour qu'il soit utilisé. Cela s'applique à yarn-nodemanager.local-dirs et yarn.nodemanager.log-dirs.