55 votes

Namenode ne démarre pas

J'utilisais Hadoop en mode pseudo-distribué et tout fonctionnait bien. Mais ensuite j'ai dû redémarrer mon ordinateur pour une raison quelconque. Et maintenant, lorsque j'essaie de démarrer le Namenode et le Datanode, je ne trouve que le Datanode en cours d'exécution. Quelqu'un pourrait-il me dire la raison possible de ce problème ? Ou est-ce que je fais quelque chose de mal ?

J'ai essayé à la fois bin/start-all.sh et bin/start-dfs.sh.

0 votes

J'ai reformaté le HDFS et maintenant je peux démarrer à la fois le Namonode et le Datanode. Mais une fois que j'utilise Hadoop pour mon projet, je ne peux pas reformater le HDFS. J'ai besoin d'une solution permanente.

102voto

Ketan Points 391

J'avais rencontré le problème du namenode qui ne démarrait pas. J'ai trouvé une solution en utilisant ce qui suit:

  1. d'abord supprimez tout le contenu du dossier temporaire : rm -Rf (le mien était /usr/local/hadoop/tmp)
  2. formatez le namenode : bin/hadoop namenode -format
  3. démarrer tous les processus à nouveau : bin/start-all.sh

Vous pouvez également envisager de revenir en arrière en utilisant le checkpoint (si vous l'aviez activé).

0 votes

@ketan: +1 m'a également aidé. J'aimerais connaître la cause de ceci cependant.

5 votes

On peut chercher sa définition d'emplacement temporaire à conf/core-site.xml au moment de la configuration vous auriez donné une certaine valeur à cette balise hadoop.tmp.dir /app/hadoop/tmp

37voto

Praveen Sripati Points 11365

hadoop.tmp.dir dans le fichier core-site.xml est par défaut à /tmp/hadoop-${user.name} qui est nettoyé après chaque redémarrage. Changez ceci pour un autre répertoire qui n'est pas nettoyé au redémarrage.

0 votes

Merci pour la réponse précieuse Praveen.

0 votes

Bonjour Praven, j'avais changé le répertoire hadoop.tmp.dir en /home/tariq/hadoop et tout fonctionnait bien... Mais aujourd'hui, lorsque j'ai allumé mon ordinateur, je n'ai pas pu démarrer le datanode... Je rencontre exactement le même problème qu'auparavant... La seule différence est que cette fois-ci c'est le datanode au lieu du namenode... J'ai besoin de votre précieux guidance.

1 votes

La première chose à faire lorsque vous rencontrez un problème est de faire un peu de débogage et de fournir des informations (exceptions, journaux, etc.) pour que d'autres puissent vous aider. Je ne le vois pas faire.

26voto

Prayag Upd Points 3347

Suivant les ÉTAPES qui ont fonctionné pour moi avec hadoop 2.2.0,

ÉTAPE 1 arrêter hadoop

hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/stop-dfs.sh

ÉTAPE 2 supprimer le dossier tmp

hduser@prayagupd$ sudo rm -rf /app/hadoop/tmp/

ÉTAPE 3 créer /app/hadoop/tmp/

hduser@prayagupd$ sudo mkdir -p /app/hadoop/tmp
hduser@prayagupd$ sudo chown hduser:hadoop /app/hadoop/tmp
hduser@prayagupd$ sudo chmod 750 /app/hadoop/tmp

ÉTAPE 4 formater le namenode

hduser@prayagupd$ hdfs namenode -format

ÉTAPE 5 démarrer dfs

hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/start-dfs.sh

ÉTAPE 6 vérifier jps

hduser@prayagupd$ $ jps
11342 Jps
10804 DataNode
11110 SecondaryNameNode
10558 NameNode

1 votes

Merci Prayag. Cela fonctionne pour moi. En fait, j'avais oublié de formater le nœud de nom.

1 votes

J'avais les mêmes symptômes, après avoir essayé toutes les suggestions de Prayag (que j'ai trouvées très bien faites d'ailleurs), j'avais toujours les mêmes symptômes. Ensuite, j'ai trouvé ceci ... le chemin dfs sur mon Namenode était défini sur un lecteur externe que j'avais débranché par inadvertance ! Oups. Moralité : vérifiez vos lecteurs/chemins car je n'ai trouvé aucun message d'erreur indiquant clairement que le chemin était incorrect.

4voto

aldrich Points 31

Dans conf/hdfs-site.xml, vous devriez avoir une propriété comme

    dfs.name.dir
    /home/user/hadoop/name/data

La propriété "dfs.name.dir" vous permet de contrôler où Hadoop écrit les métadonnées du NameNode. Et lui donner un autre répertoire autre que /tmp garantit que les données du NameNode ne seront pas supprimées lorsque vous redémarrez.

1 votes

Je pense que vous manquez de file://

0 votes

Dans Hadoop 3.0.0, cela se trouve à $HADOOP_ROOT/etc/hadoop/hdfs-site.xml.

3voto

tutor Points 11

Ouvrez un nouveau terminal et démarrez le namenode en utilisant chemin-vers-votre-installation-hadoop/bin/hadoop namenode

Vérifiez en utilisant jps que le namenode est en cours d'exécution

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X