J'ai créé un cluster hadoop à un seul nœud sous Ubuntu dans EC2.
Le test d'un simple téléchargement de fichier vers hdfs fonctionne depuis la machine EC2, mais ne fonctionne pas depuis une machine en dehors d'EC2.
Je peux parcourir le système de fichiers via l'interface web à partir de la machine distante, et il montre un datanode qui est signalé comme étant en service. J'ai ouvert tous les ports tcp dans la sécurité de 0 à 60000( !) donc je ne pense pas que ce soit ça.
Je reçois l'erreur
java.io.IOException: File /user/ubuntu/pies could only be replicated to 0 nodes, instead of 1
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1448)
at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:690)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:342)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1350)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1346)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:742)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1344)
at org.apache.hadoop.ipc.Client.call(Client.java:905)
at org.apache.hadoop.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:198)
at $Proxy0.addBlock(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
at $Proxy0.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:928)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:811)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:427)
Le journal de namenode donne juste la même erreur. Les autres ne semblent pas avoir quelque chose d'intéressant
Des idées ?
Cheers
2 votes
J'ai rencontré un problème lors de la mise en place d'une VM à nœud unique. J'ai supprimé les propriétés de configuration de
conf/core-site.xml
,conf/mapred-site.xml
etconf/hdfs-site.xml
. Il fonctionne bien sur ma VM. Avertissement : je suis un débutant absolu. Je pense que ces changements conduisent à des valeurs par défaut pour une seule instance et que cela a fonctionné. HTH.0 votes
J'ai également eu le même problème/erreur. Le problème est apparu en premier lieu lorsque j'ai formaté en utilisant hadoop namenode -format. Après avoir redémarré hadoop en utilisant, start-all.sh, le noeud de données n'a pas démarré ou initialisé. Vous pouvez le vérifier en utilisant jps, il devrait y avoir cinq entrées. Si le noeud de données est manquant, alors vous pouvez faire ceci : stackoverflow.com/questions/11889261/