J'essaie d'exécuter hadoop en tant qu'utilisateur root. J'ai exécuté la commande de formatage namenode hadoop namenode -format
lorsque le système de fichiers Hadoop est en cours d'exécution.
Après cela, lorsque j’essaie de démarrer le serveur de nœud de nom, il affiche une erreur comme ci-dessous
13/05/23 04:11:37 ERROR namenode.FSNamesystem: FSNamesystem initialization failed.
Java.io.IOException: NameNode is not formatted.
at org.Apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.Java:330)
at org.Apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.Java:100)
at org.Apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.Java:411)
J'ai essayé de chercher une solution, mais je ne trouve pas de solution claire.
Quelqu'un peut-il suggérer?
Merci.
Cool, j'ai trouvé la solution.
Arrêtez tout le serveur en cours d'exécution
1) stop-all.sh
Editez le fichier /usr/local/hadoop/conf/hdfs-site.xml
et ajoutez la configuration ci-dessous si elle manque
<property>
<name>dfs.data.dir</name>
<value>/app/hadoop/tmp/dfs/name/data</value>
<final>true</final>
</property>
<property>
<name>dfs.name.dir</name>
<value>/app/hadoop/tmp/dfs/name</value>
<final>true</final>
</property>
Démarrer les démons HDFS et MapReduce
2) start-dfs.sh
3) start-mapred.sh
Ensuite, exécutez le reste des étapes pour exécuter la carte réduire l’échantillon donné dans ce lien
Remarque: Vous devriez exécuter la commande bin/start-all.sh
si la commande directe n'est pas en cours d'exécution.
DFS doit être formaté. Il suffit d’émettre la commande suivante après avoir tout arrêté puis redémarré.
hadoop namenode -format
formatez hdfs quand namenode s’arrête. (tout comme la réponse du haut).
J'ajoute quelques détails supplémentaires.
La commande FORMAT vérifiera ou créera chemin/dfs/name et l'initialisera ou la revitalisera . Puis lancer start-dfs.sh lancerait namenode, datanode, puis namesecondary . ou ne pas initialiser, il se produit une erreur fatale, puis quitte . Voilà pourquoi namenode ne démarre pas.
plus de détails vous pouvez vérifier HADOOP_COMMON/logs/XXX.namenode.log
Assurez-vous que le répertoire que vous avez spécifié pour votre nom de famille est complètement vide. Quelque chose comme un dossier "lost + found" dans ce répertoire déclenchera cette erreur.
assurez-vous que le répertoire de nommer (dfs.name.dir) et le dossier de données (dfs.data.dir) sont correctement répertoriés dans hdfs-site.xml
D'abord mkdir [dossier], puis définissez hdfs-site.xml puis formatez
hdfs-site.xml votre valeur est fausse. Vous avez entré le mauvais dossier, c’est la raison pour laquelle vous ne démarrez pas le nœud de nom.