Estaba intentando que Hadoop funcionara en modo autónomo en mi MBP (OS 10.9.5), pero seguía recibiendo errores de "conexión rechazada". Encontré que telnet localhost 9000
da el mismo error, que es lo que me dijeron que probara como diagnóstico. Lo mismo ocurre si intento 127.0.0.1
en lugar de localhost
o si intento ftp
en lugar de telnet
. Sin embargo, ping localhost
y ssh localhost
funcionan bien.
Hace un tiempo me lié con la configuración de un servidor Apache y me preocupa haber roto algo. En algún momento, aparentemente había añadido la línea:
127.0.0.1 test.local
a /etc/hosts
. También había modificado httpd.conf
para utilizar la carpeta ~/test
como mi DocumentRoot
y había cambiado a extra/httpd-vhosts.conf
también.
He restaurado el original httpd*
archivos del /etc/apache2/original
y he restaurado la carpeta /etc/hosts
a su estado original. apachectl configtest
me da:
httpd: Could not reliably determine the server's fully qualified domain name, using <username>.local for ServerName
Syntax OK
¿Y qué hago? ¿Cómo puedo hacer que mi ordenador deje de rechazar la conexión? No sé mucho sobre redes o servidores.
Para completar, aquí está el error original de telnet:
$ ssh localhost
$ telnet localhost 9000
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying fe80::1...
telnet: connect to address fe80::1: Connection refused
telnet: Unable to connect to remote host
y mi /etc/hosts
archivo:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
y el error de Hadoop que utiliza el mismo lenguaje de "conexión rechazada" que telnet :
java.net.ConnectException: Call From <username>.local/<ip> to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
Siguiendo el enlace del error ( http://wiki.apache.org/hadoop/ConnectionRefused ), he leído lo siguiente:
Si la aplicación o el clúster no funcionan, y este mensaje aparece en el registro, entonces es más grave.
- Compruebe que el nombre de host que utiliza el cliente es correcto
- Compruebe que la dirección IP con la que el cliente intenta hablar para el nombre de host es correcta.
- Asegúrese de que la dirección de destino en la excepción no es 0.0.0.0 -esto significa que usted no ha configurado el cliente con la dirección real para ese servicio, y en su lugar está recogiendo la propiedad del lado del servidor que le dice que escuche en cada puerto para las conexiones.
- Compruebe que no hay una entrada para su nombre de host asignada a 127.0.0.1 o 127.0.1.1 en /etc/hosts (Ubuntu es famoso por esto)
- Compruebe que el puerto con el que el cliente intenta hablar coincide con el que el servidor ofrece un servicio.
- En el servidor, intente un
telnet localhost <port>
para ver si el puerto está abierto allí.- En el cliente, intente un
telnet <server> <port>
para ver si el puerto es accesible de forma remota.Ninguno de estos son problemas de Hadoop, son problemas de configuración de host, red y firewall. Como es tu clúster, sólo tú puedes averiguar y localizar el problema.
y efectivamente me falla el penúltimo paso, que aparentemente debería funcionar; de ahí esta pregunta.