J'ai 3 nœuds de données en cours d'exécution, tout en exécutant un travail, je reçois l'erreur suivante donnée,
Java.io.IOException: Le fichier/utilisateur/ashsshar/olhcache/loaderMap9b663bd9 n'a été répliqué que sur 0 nœud au lieu de minReplication (= 1). Il y a 3 datanode (s) en cours d'exécution et 3 nœud (s) sont exclus dans cette opération . at org.Apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget (BlockManager.Java:1325)
Cette erreur survient principalement lorsque l'espace de nos instances DataNode est saturé ou si les DataNodes ne sont pas en cours d'exécution. J'ai essayé de redémarrer les DataNodes tout en obtenant la même erreur.
les rapports dfsadmin sur les nœuds de mon cluster indiquent clairement que beaucoup d'espace est disponible.
Je ne sais pas pourquoi cela se produit.
1.Stop tous les démons Hadoop
for x in `cd /etc/init.d ; ls hadoop*` ; do Sudo service $x stop ; done
2.Retirez tous les fichiers de /var/lib/hadoop-hdfs/cache/hdfs/dfs/name
Eg: devan@Devan-PC:~$ Sudo rm -r /var/lib/hadoop-hdfs/cache/
3.Format Namenode
Sudo -u hdfs hdfs namenode -format
4.Démarrez tous les démons Hadoop
for x in `cd /etc/init.d ; ls hadoop*` ; do Sudo service $x start ; done
J'ai eu le même problème, je manquais beaucoup d'espace disque. Libérer le disque l'a résolu.
jps
.Ce que je fais habituellement lorsque cela se produit, c’est que je vais dans le répertoire tmp/hadoop-username/dfs/et que je supprime manuellement les dossiers data et name (en supposant que vous utilisez un environnement Linux. ).
Formatez ensuite le fichier DFS en appelant bin/hadoop namenode -format (assurez-vous de répondre avec une majusculeYlorsque le système vous demande si vous souhaitez formater; si le système ne vous demande pas, - relancez la commande).
Vous pouvez ensuite redémarrer hadoop en appelant bin/start-all.sh
Solution très simple pour le même problème sous Windows 8.1
J'ai utilisé le système d’exploitation Windows 8.1 et Hadoop 2.7.2, pour résoudre ce problème.
Dans mon cas, ce problème a été résolu en ouvrant le port du pare-feu sur 50010 sur les codes de données.
J'ai eu ce problème et je l'ai résolu comme ci-dessous:
Trouvez où sont sauvegardées vos métadonnées/données de namenode et vos nom de fichier; si vous ne le trouvez pas, faites simplement cette commande sur mac pour le trouver (il se trouve dans un dossier appelé "tmp")
find/usr/local/Cellar/-name "tmp";
la commande find est comme ceci: find <"directory"> -name <"toute indication de chaîne pour ce répertoire ou ce fichier">
Après avoir trouvé ce fichier, insérez-y cd ./Usr/local/Cellar // hadoop/hdfs/tmp
puis cd à dfs
puis en utilisant la commande -ls, vous verrez que les répertoires de données et de noms sont situés à cet emplacement.
En utilisant la commande remove, supprimez les deux:
rm -R données. et rm -R nom
Allez dans le dossier bin et terminez tout si vous ne l'avez pas déjà fait:
sbin/end-dfs.sh
Quittez le serveur ou l'hôte local.
Connectez-vous à nouveau au serveur: ssh <"nom du serveur">
démarrez le dfs:
sbin/start-dfs.sh
Formatez le namenode pour en être sûr:
bin/hdfs namenode -format
vous pouvez maintenant utiliser les commandes hdfs pour télécharger vos données dans dfs et exécuter les travaux MapReduce.