J'essaie de configurer un cluster Hadoop 2.6.0 à nœud unique sur mon PC.
En visitant http: // localhost: 8088/cluster , je constate que mon nœud est répertorié comme "nœud malsain".
Dans le rapport sur la santé, cela indique l'erreur:
1/1 local-dirs are bad: /tmp/hadoop-hduser/nm-local-dir;
1/1 log-dirs are bad: /usr/local/hadoop/logs/userlogs
Qu'est-ce qui ne va pas?
La cause la plus courante de local-dirs are bad
est due à l'espace disque disponible sur le nœud dépassant la valeur par défaut max-disk-utilization-per-disk-percentage
du fil, 90.0%
.
Nettoyez le disque sur lequel le nœud défaillant est en cours d’exécution ou augmentez le seuil dans yarn-site.xml
<property>
<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
<value>98.5</value>
</property>
Évitez de désactiver la vérification du disque, car vos travaux risquent d'échouer lorsque le disque manquera éventuellement d'espace ou s'il existe des problèmes d'autorisation. Reportez-vous à la section yarn-site.xml Vérificateur de disque pour plus de détails.
Si vous pensez qu'il y a une erreur de système de fichiers dans le répertoire, vous pouvez vérifier en exécutant
hdfs fsck /tmp/hadoop-hduser/nm-local-dir
Essayez d’ajouter la configuration dans yarn-site.xml
<property>
<name>yarn.nodemanager.disk-health-checker.enable</name>
<value>false</value>
</property>
Cela peut fonctionner sur mon site.
Et lancez le répertoire/usr/local/hadoop/logs. ex:
rm -rf /usr/local/hadoop/logs
mkdir -p /usr/local/hadoop/logs
J'ai eu un problème similaire au début.
Ensuite, j'ai aussi trouvé un autre problème. Lorsque j'ai utilisé la commande jps, certains processus tels que NameNode, DataNode, etc. étaient manquants.
$jps
13696 Jps
12949 ResourceManager
13116 NodeManager
Ensuite, je l'ai corrigé à partir de solution et le problème de noeud malsain a été automatiquement résolu.
Cela peut également être dû à l'emplacement incorrect du répertoire de journal configuré par yarn.nodemanager.log-dirs
dans yarn-site.xml
. Soit par le répertoire fait n'existe pas ou a les autorisations mal définies.
Sur macOS avec Hadoop installé à l'aide de brew
, j'ai dû modifier /usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/yarn-site.xml
pour inclure les éléments suivants:
<property>
<name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name>
<value>0</value>
</property>
Le paramètre a fondamentalement désactivé complètement la vérification de l'état du disque
J'ai trouvé le fichier en utilisant brew list hadoop
.
$ brew list hadoop | grep yarn-site.xml
/usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/yarn-site.xml
/usr/local/Cellar/hadoop/2.8.1/libexec/share/hadoop/tools/sls/sample-conf/yarn-site.xml
J'ai eu un problème similaire, le téléchargement de sqoop a été corrigé lorsque les hdfs ont atteint 90%. Après avoir modifié un seuil pour le pourcentage d'utilisation du disque maximum et le pourcentage de définition du seuil d'alarme, le téléchargement fonctionne à nouveau. Merci
Je l’ai expérimenté lorsque le disque est à 90% (avec> df) et j’enlève les fichiers inutiles pour qu’il devienne 85% (paramètre par défaut de yarn.nodemanager.disk-health-checker.max pourcentage utilise 90% du disque disponible si vous ne spécifiez pas dans yarn-site.xml) et que le problème est résolu.
L'effet est similaire si vous augmentez l'utilisation à plus de 90% (si vous voulez que l'espace supplémentaire disponible dans mon cas soit saturé à 90%), il vous suffit juste de libérer de l'espace supplémentaire. Cependant, il est de bonne pratique de ne pas dépasser 90% de toute façon.