web-dev-qa-db-fra.com

Le datanode ne démarre pas correctement

J'essaie d'installer Hadoop 2.2.0 en mode pseudo-distribué. Pendant que j'essaie de démarrer les services de datanode, il affiche l'erreur suivante, quelqu'un peut-il s'il vous plaît dire comment résoudre ce problème?

**2**014-03-11 08:48:15,916 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Block pool <registering> (storage id unknown) service to localhost/127.0.0.1:9000 starting to offer service
2014-03-11 08:48:15,922 INFO org.Apache.hadoop.ipc.Server: IPC Server Responder: starting
2014-03-11 08:48:15,922 INFO org.Apache.hadoop.ipc.Server: IPC Server listener on 50020: starting
2014-03-11 08:48:16,406 INFO org.Apache.hadoop.hdfs.server.common.Storage: Lock on /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode/in_use.lock acquired by nodename 3627@prassanna-Studio-1558
2014-03-11 08:48:16,426 FATAL org.Apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582) service to localhost/127.0.0.1:9000
Java.io.IOException: Incompatible clusterIDs in /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode: namenode clusterID = CID-fb61aa70-4b15-470e-a1d0-12653e357a10; datanode clusterID = CID-8bf63244-0510-4db6-a949-8f74b50f2be9
    at**** org.Apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.Java:391)
    at org.Apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.Java:191)
    at org.Apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.Java:219)
    at org.Apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.Java:837)
    at org.Apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.Java:808)
    at org.Apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.Java:280)
    at org.Apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.Java:222)
    at org.Apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.Java:664)
    at Java.lang.Thread.run(Thread.Java:662)
2014-03-11 08:48:16,427 WARN org.Apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582) service to localhost/127.0.0.1:9000
2014-03-11 08:48:16,532 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582)
2014-03-11 08:48:18,532 WARN org.Apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
2014-03-11 08:48:18,534 INFO org.Apache.hadoop.util.ExitUtil: Exiting with status 0
2014-03-11 08:48:18,536 INFO org.Apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG: 
35
user2631600

Vous pouvez faire la méthode suivante,

copier dans le presse-papiers datanode clusterID pour votre exemple, CID-8bf63244-0510-4db6-a949-8f74b50f2be9

et exécutez la commande suivante sous le répertoire HADOOP_HOME/bin

./hdfs namenode -format -clusterId CID-8bf63244-0510-4db6-a949-8f74b50f2be9

puis ce code a formaté le namenode avec des ID de cluster de datanode.

74
iceberg

Vous devez faire comme suit:

  • bin/stop-all.sh
  • rm -Rf /home/prassanna/usr/local/hadoop/yarn_data/hdfs/*
  • bin/hadoop namenode -format

J'ai eu le même problème jusqu'à ce que je trouve une réponse dans ce site Web .

19
Mouna

Chaque fois que vous obtenez une erreur inférieure, essayez de démarrer un DN sur une machine esclave:

Java.io.IOException: Incompatible clusterIDs in /home/hadoop/dfs/data: namenode clusterID= ****; datanode clusterID = ****

C'est parce qu'après avoir configuré votre cluster, vous, pour une raison quelconque, avez décidé de reformater votre NN. Vos DN sur les esclaves portent toujours une référence à l'ancien NN.

Pour résoudre ce problème, supprimez et recréez simplement le dossier de données sur cette machine dans Linux FS local, à savoir/home/hadoop/dfs/data.

Le redémarrage du démon de ce DN sur cette machine va recréer le contenu des données/dossiers et résoudre le problème.

15
eliasah

Suivez les étapes simples

  • Effacer le répertoire de données de hadoop
  • Formatez à nouveau le namenode
  • démarrer le cluster

Après cela, votre cluster démarrera normalement si vous ne rencontrez aucun autre problème de configuration

10
Vikas Hardia

DataNode meurt en raison de Clusterids incompatibles par rapport à NameNode. Pour résoudre ce problème, vous devez supprimer le répertoire/tmp/hadoop- [utilisateur]/hdfs/data et redémarrer hadoop.

rm -r /tmp/hadoop-[user]/hdfs/data
7
sofiene zaghdoudi

J'ai eu un problème similaire dans mon environnement pseudo distribué. J'ai d'abord arrêté le cluster, puis j'ai copié l'ID de cluster à partir du fichier de version de NameNode et l'ai mis dans le fichier de version de DataNode, puis après avoir redémarré le cluster, tout va bien.

mon chemin de données est ici/usr/local/hadoop/hadoop_store/hdfs/datanode et/usr/local/hadoop/hadoop_store/hdfs/namenode.

Pour info: le fichier de version se trouve sous/usr/local/hadoop/hadoop_store/hdfs/datanode/current /; de même pour NameNode.

5
S N

Ici, le datanode est arrêté immédiatement parce que le clusterID du datanode et du namenode sont différents. Vous devez donc formater le clusterID de namenode avec clusterID de datanode

Copiez le clusterID de noeud de données pour votre exemple, CID-8bf63244-0510-4db6-a949-8f74b50f2be9 et exécutez la commande suivante à partir de votre répertoire personnel. Vous pouvez accéder à votre répertoire personnel en tapant simplement cd sur votre terminal.

Depuis votre répertoire personnel, tapez maintenant la commande:

hdfs namenode -format -clusterId CID-8bf63244-0510-4db6-a949-8f74b50f2be9
4
Neil

J'ai également eu le même problème. J'ai supprimé les dossiers namenode et datanode de tous les nœuds et réexécuté:

$HADOOP_HOME/bin> hdfs namenode -format -force
$HADOOP_HOME/sbin> ./start-dfs.sh
$HADOOP_HOME/sbin> ./start-yarn.sh

Pour vérifier le rapport de santé à partir de la ligne de commande (que je recommanderais)

$HADOOP_HOME/bin> hdfs dfsadmin -report

et j'ai fait fonctionner tous les nœuds correctement.

2
Raxit Solanki

Supprimez les répertoires namenode et datanode comme spécifié dans le core-site.xml. Après cela, créez les nouveaux répertoires et redémarrez le DFS et le fil.

2
KayV

J'ai eu le même problème pour hadoop 2.7.7

J'ai supprimé le répertoire namenode/current & datanode/current sur namenode et tous les datanodes

  • Fichiers supprimés à /tmp/hadoop-ubuntu/*
  • puis formatez le namenode et le datanode
  • redémarrez tous les nœuds.
  • les choses fonctionnent bien

étapes: arrêtez tous les nœuds/gestionnaires, puis essayez les étapes ci-dessous

  1. rm -rf /tmp/hadoop-ubuntu/* (tous les nœuds)
  2. rm -r /usr/local/hadoop/data/hdfs/namenode/current (namenode: vérifiez hdfs-site.xml pour chemin)
  3. rm -r /usr/local/hadoop/data/hdfs/datanode/current (datanode: vérifiez hdfs-site.xml pour chemin)
  4. hdfs namenode -format (sur namenode)
  5. hdfs datanode -format (sur namenode)
  6. Redémarrez le namenode et les nœuds de données
1
LinxFan