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 Namenode et Datanode, je ne peux trouver que 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
.
Je faisais face à la question de namenode ne commence pas. J'ai trouvé une solution en utilisant ce qui suit:
rm -Rf <tmp dir>
(mon/usr/local/hadoop/tmp)bin/hadoop namenode -format
bin/start-all.sh
Vous pouvez également envisager de revenir en arrière en utilisant checkpoint (si vous l'aviez activé).
hadoop.tmp.dir
dans le fichier core-site.xml est defaulted to /tmp/hadoop-${user.name}
qui est nettoyé après chaque redémarrage. Remplacez-le par un autre répertoire qui ne sera pas nettoyé au redémarrage.
SuivreLES &EACUTE;TAPESa travaillé pour moi avec hadoop 2.2.0
ÉTAPE 1 stop 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 create/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 format namenode
hduser@prayagupd$ hdfs namenode -format
ÉTAPE 5 start dfs
hduser@prayagupd$ /usr/local/hadoop-2.2.0/sbin/start-dfs.sh
ETAPE 6 check jps
hduser@prayagupd$ $ jps
11342 Jps
10804 DataNode
11110 SecondaryNameNode
10558 NameNode
Dans conf/hdfs-site.xml, vous devriez avoir une propriété comme
<property>
<name>dfs.name.dir</name>
<value>/home/user/hadoop/name/data</value>
</property>
La propriété "dfs.name.dir" vous permet de contrôler où Hadoop écrit les métadonnées NameNode. Et si vous lui donnez un autre répertoire plutôt que/tmp, vous vous assurez que les données NameNode ne sont pas supprimées lors du redémarrage.
Ouvrez un nouveau terminal et démarrez le namenode à l'aide de chemin-de-votre-hadoop-install/bin/hadoop namenode
Le chèque en utilisant jps et namenode devrait être en cours d'exécution
Pourquoi la plupart des réponses ici supposent-elles que toutes les données doivent être supprimées, reformatées, puis redémarrer Hadoop? Comment savons-nous que namenode ne progresse pas, mais prend beaucoup de temps . Il le fera en cas de grande quantité de données dans HDFS . Vérifiez la progression dans les journaux avant de supposer que quoi que ce soit soit bloqué ou bloqué.
$ [kadmin@hadoop-node-0 logs]$ tail hadoop-kadmin-namenode-hadoop-node-0.log
...
016-05-13 18:16:44,405 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 117/141 transactions completed. (83%)
2016-05-13 18:16:56,968 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 121/141 transactions completed. (86%)
2016-05-13 18:17:06,122 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 122/141 transactions completed. (87%)
2016-05-13 18:17:38,321 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 123/141 transactions completed. (87%)
2016-05-13 18:17:56,562 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 124/141 transactions completed. (88%)
2016-05-13 18:17:57,690 INFO org.Apache.hadoop.hdfs.server.namenode.FSEditLogLoader: replaying edit log: 127/141 transactions completed. (90%)
C’était après presque une heure d’attente sur un système particulier . Il continue de progresser à chaque fois que je le regarde . Soyez patient avec Hadoop lors de la création du système et vérifiez les journaux avant de penser que quelque chose est bloqué ou ne progresse pas .
Si quelqu'un utilise la version hadoop1.2.1 et ne peut pas exécuter namenode, accédez à core-site.xml
et remplacez dfs.default.name
par fs.default.name
.
Et formatez ensuite le namenode en utilisant $hadoop namenode -format
.
Enfin, lancez le fichier hdfs en utilisant start-dfs.sh
et vérifiez le service en utilisant jps.
Dans core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/yourusername/hadoop/tmp/hadoop-${user.name}
</value>
</property>
</configuration>
et format de namenode avec:
hdfs namenode -format
a travaillé pour hadoop 2.8.1
I got the solution just share with you that will work who got the errors:
1. First check the /home/hadoop/etc/hadoop path, hdfs-site.xml and
check the path of namenode and datanode
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
2.Check the permission,group and user of namenode and datanode of the particular path(/home/hadoop/hadoopdata/hdfs/datanode), and check if there are any problems in all of them and if there are any mismatch then correct it. ex .chown -R hadoop:hadoop in_use.lock, change user and group
chmod -R 755 <file_name> for change the permission
Ajoutez la propriété hadoop.tmp.dir dans core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/yourname/hadoop/tmp/hadoop-${user.name}</value>
</property>
</configuration>
et format hdfs (hadoop 2.7.1):
$ hdfs namenode -format
La valeur par défaut de core-default.xml est /tmp/hadoop-${user.name}, qui sera supprimée après le redémarrage.
Avez-vous changé conf/hdfs-site.xml
dfs.name.dir
?
Formatez namenode après l'avoir changé.
$ bin/hadoop namenode -format
$ bin/hadoop start-all.sh
J'ai exécuté $hadoop namenode
pour démarrer namenode manuellement au premier plan.
D'après les journaux, j'ai découvert que 50070 était occupé, qui était utilisé par défaut par dfs.namenode.http-address. Après avoir configuré dfs.namenode.http-address dans hdfs-site.xml, tout s’est bien passé.
Au lieu de formater namenode, vous pouvez utiliser la commande ci-dessous pour redémarrer le namenode. Cela a fonctionné pour moi:
Service Sudo redémarrage de hadoop-master
Face au même problème.
(1) Vérifiez toujours les fautes de frappe dans la configuration des fichiers .xml
, en particulier les balises XML.
(2) allez dans bin dir. et tapez ./start-all.sh
(3) puis tapez jps
, pour vérifier si les processus fonctionnent
Pour moi, ce qui suit a fonctionné après avoir changé le répertoire du namenode Et du datanode dans hdfs-site.xml
- avant d'exécuter les étapes suivantes, arrêtez tous les services avec stop-all.sh
ou dans mon cas, j'ai utilisé le stop-dfs.sh
pour arrêter le dfs
$rm -rf /tmp/haddop-$USER
hadoop/bin/hdfs namenode -format
start-dfs.sh
Après avoir suivi ces étapes, mon nom-code et mes codes de données étaient vivants à l'aide du nouveau répertoire configuré.
Si vous conserviez les configurations par défaut lors de l'exécution de hadoop, le port pour le nom de code serait 50070. Vous devrez rechercher tous les processus en cours d'exécution sur ce port et les tuer d'abord.
Arrêtez tous les hadoop en cours avec: bin/stop-all.sh
vérifie tous les processus en cours d'exécution sur le port 50070
Sudo netstat -tulpn | grep :50070
#check tous les processus en cours d'exécution dans port 50070, s'il y en a un/apparaîtront/apparaîtra sur le RHS de la sortie.
Sudo kill -9 <process_id> #kill_the_process
.
Sudo rm -r /app/hadoop/tmp
#delete le dossier temporaire
Sudo mkdir /app/hadoop/tmp
# le recréer
Sudo chmod 777 –R /app/hadoop/tmp
(777 est donné pour cet exemple seulement)
bin/hadoop namenode –format
#format hadoop namenode
bin/start-all.sh
# services hadoop all-start
Référez-vous ce blog
Si vous rencontrez ce problème après le redémarrage du système, les étapes ci-dessous fonctionneront correctement.
Pour contourner le problème.
1) formatez le namenode: bin/hadoop namenode -format
2) redémarrez tous les processus: bin/start-all.sh
Pour le correctif de Perm: -
1) Allez dans /conf/core-site.xml changez fs.default.name en votre nom personnalisé.
2) formatez le namenode: bin/hadoop namenode -format
3) redémarrez tous les processus: bin/start-all.sh
J'ai rencontré la même chose après un redémarrage.
pour hadoop-2.7.3, tout ce que je devais faire était de formater le namenode:
<HadoopRootDir>/bin/hdfs namenode -format
Puis une commande jps montre
6097 DataNode
755 RemoteMavenServer
5925 NameNode
6293 SecondaryNameNode
6361 Jps
Si votre namenode est bloqué en mode sans échec, vous pouvez passer à namenode, su hdfs
user et exécuter la commande suivante pour désactiver le mode sans échec:
hdfs dfsadmin -fs hdfs://server.com:8020 -safemode leave
Après la suppression du dossier de données d'un gestionnaire de ressources, le problème a disparu.
Même si vous avez un formatage ne peut pas résoudre ce problème.
Essaye ça,
1) Arrêtez tous les processus hadoop: stop-all.sh
2) Supprimer le dossier tmp manuellement
3) Format de nom: hadoop namenode -format
4) Démarrer tous les processus: start-all.sh