web-dev-qa-db-fra.com

Hadoop - namenode ne démarre pas

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.

13
balanv

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.

20
balanv

DFS doit être formaté. Il suffit d’émettre la commande suivante après avoir tout arrêté puis redémarré. 

hadoop namenode -format
14
redTiger

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

2
liuyang1

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.

1
Eddie

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

0
Pari Rajaram

D'abord mkdir [dossier], puis définissez hdfs-site.xml puis formatez

0
mcolak

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. 

0
user3953713