Foro Formación Hadoop

Problema al almacenar ficheros en directorios

 
Imagen de Jordi Gonzalez
Problema al almacenar ficheros en directorios
de Jordi Gonzalez - viernes, 26 de agosto de 2016, 12:52
 

Buenas,

He empezado recientemente con el curso y ya me he quedado bloqueado en los primeros ejercicios.

Estoy trabajando con el HDFS y el paso 5 pide copiar el fichero acceso_log.txt dentro del directorio /formacionhadoop/desarrollador/accesoslog. 

El directorio está creado pero cuando trato de almacenar el fichero algo va mal porque al listar el contenido no me devuelve nada, es como si estuviera vacio.

Os adjunto el log que devuelve la sentencia put:

D:\Microk\Big Data\Hadoop\Formacion\Material Ejercicios\datasets>hadoop fs -put test.txt /formacionhadoop/desarrollador/accesoslog
16/08/26 12:33:57 WARN hdfs.DFSClient: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /formacionhadoop/desarrollador/accesoslog/test.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.
at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1550)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNewBlockTargets(FSNamesystem.java:3110)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3034)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:723)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:492)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)

at org.apache.hadoop.ipc.Client.call(Client.java:1476)
at org.apache.hadoop.ipc.Client.call(Client.java:1407)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229)
at com.sun.proxy.$Proxy9.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:418)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
at com.sun.proxy.$Proxy10.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1430)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1226)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:449)
put: File /formacionhadoop/desarrollador/accesoslog/test.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.

D:\Microk\Big Data\Hadoop\Formacion\Material Ejercicios\datasets>hadoop fs -ls /formacionhadoop/desarrollador/accesoslog

D:\Microk\Big Data\Hadoop\Formacion\Material Ejercicios\datasets>hadoop fs -ls /

 

Gracias

Imagen de Fernando Agudo
Re: Problema al almacenar ficheros en directorios
de Fernando Agudo - sábado, 27 de agosto de 2016, 13:20
 

Hola Jordi, 

¿Qué sistema estas utilizando para realizar los ejercicios? ¿La VM quickstart de Cloudera?

El problema es que no tienes ningún DataNode levantado "There are 0 datanode(s) running and no node(s) are excluded in this operation."

Si quieres para ver los servicios que se están ejecutando de una manera rápida, puedes ejecutar en una terminal el comando: sudo jps -m

Esto te muestra un listado de los procesos java que se están ejecutando. Para el HDFS debe aparecer el NameNode y al menos un DataNode.

En el caso de que te falte alguno de estos servicios, los puedes arrancar desde el Cloudera Manager (en caso de que lo estés utilizando) o desde la consola de comandos (en el directorio /etc/init.d/ se encuentran todos los servicios).

Para arrancar y parar servicios puedes ver el vídeo tutoría de Configuración de la VM.

Un saludo,

Imagen de Jordi Gonzalez
Re: Problema al almacenar ficheros en directorios
de Jordi Gonzalez - lunes, 29 de agosto de 2016, 17:46
 

Hola Fernando,

Lo he instalado en Windows 10. Voy a mirar de levantar el datanode a ver si soluciono el problema. 

Lo que no entiendo es como es posible que los demas ficheros si que se copiaran.

Te informo cuando lo haya probado.

Graicas