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:
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.
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 .
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.
Suivez les étapes simples
Après cela, votre cluster démarrera normalement si vous ne rencontrez aucun autre problème de configuration
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
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.
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
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.
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.
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
/tmp/hadoop-ubuntu/*
étapes: arrêtez tous les nœuds/gestionnaires, puis essayez les étapes ci-dessous
rm -rf /tmp/hadoop-ubuntu/*
(tous les nœuds)rm -r /usr/local/hadoop/data/hdfs/namenode/current
(namenode: vérifiez hdfs-site.xml
pour chemin)rm -r /usr/local/hadoop/data/hdfs/datanode/current
(datanode: vérifiez hdfs-site.xml
pour chemin)hdfs namenode -format
(sur namenode)hdfs datanode -format
(sur namenode)