Foro Formación Hadoop
ejercicio: 2. explorando hdfs Failed to connect to server
Hola,
Al ejecutar el comando:
$ hadoop fs -ls
obtengo el siguiente mensaje:
[cloudera@quickstart /]$ hadoop fs -ls
17/10/29 13:17:07 WARN ipc.Client: Failed to connect to server: quickstart.cloudera/192.168.255.128:8020: try once and fail.
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494)
at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:648)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:744)
at org.apache.hadoop.ipc.Client$Connection.access$3000(Client.java:396)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1555)
at org.apache.hadoop.ipc.Client.call(Client.java:1478)
at org.apache.hadoop.ipc.Client.call(Client.java:1439)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:230)
at com.sun.proxy.$Proxy16.getFileInfo(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:771)
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:260)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:104)
at com.sun.proxy.$Proxy17.getFileInfo(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:2126)
at org.apache.hadoop.hdfs.DistributedFileSystem$20.doCall(DistributedFileSystem.java:1262)
at org.apache.hadoop.hdfs.DistributedFileSystem$20.doCall(DistributedFileSystem.java:1258)
at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1258)
at org.apache.hadoop.fs.Globber.getFileStatus(Globber.java:64)
at org.apache.hadoop.fs.Globber.doGlob(Globber.java:272)
at org.apache.hadoop.fs.Globber.glob(Globber.java:151)
at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1715)
at org.apache.hadoop.fs.shell.PathData.expandAsGlob(PathData.java:326)
at org.apache.hadoop.fs.shell.Command.expandArgument(Command.java:235)
at org.apache.hadoop.fs.shell.Command.expandArguments(Command.java:218)
at org.apache.hadoop.fs.shell.FsCommand.processRawArguments(FsCommand.java:102)
at org.apache.hadoop.fs.shell.Command.run(Command.java:165)
at org.apache.hadoop.fs.FsShell.run(FsShell.java:315)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.hadoop.fs.FsShell.main(FsShell.java:372)
ls: Call From quickstart.cloudera/192.168.255.128 to quickstart.cloudera:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
NO encuentro por tanto el directorio user
Alguna sugerencia?
Gracias
Emilio Herrero
ok, autoresuelto:
Tenía desactivado el servicio hadoop
$ sudo ./hadoop-hdfs-namenode start (en la ubicación de los servicios: etc/init.d)
ha resuelto el problema
Saludos
Hola Emilio,
Si, efectivamente el error era que el NameNode se encontraba en un estado incorrecto (parado posiblemente, cosas de la VM....).
Únicamente recordarte que la manera que has utilizado de reiniciar el servicio es la correcta siempre y cuando no estés haciendo la gestión de los servicios a través del Cloudera Manager. Si iniciaste el Cloudera Manager para arrancar y parar los servicios y ahora lo has realizado manualmente con el comando que indicas, puede ser que tengas problemas de "incompatibilidades" ya que el Cloudera Manager se puede hacer un lío porque ha perdido la noción de en que estado se encuentra ese servicio (HDFS).
En cualquier caso, enhorabuena por encontrar la solución ;).
Un saludo,
Gracias por la observación,
Me ha funcionado porque había parado los servicios desde la consola con línea de código, poniendo en práctica las recomendaciones de configuración de la máquina virtual.
Aprovecho para comentar que en mi versión de Cloudera el fondo de la consola, en vez de ser negro es blanco, con lo que en ocasiones, cuando hago -ls, tengo problemas con los colores claros correspondientes a algunos permisos de archivos y carpetas. ¿Alguien sabría cómo puedo poner el fondo de la consola de color negro?
Gacias
Emilio Herrero
Redes sociales