Estaba intentando que Hadoop funcionara en modo independiente en mi MBP (OS 10.9.5), pero seguía recibiendo errores de "conexión rechazada". Descubrí que telnet localhost 9000
da el mismo error, que es lo que me dijeron que probara como diagnóstico. Lo mismo sucede si lo intento en 127.0.0.1
lugar de localhost
, o si lo intento en ftp
lugar de telnet
. Sin embargo ping localhost
y ssh localhost
funciona bien.
Me había equivocado hace un tiempo con la configuración de un servidor Apache, y me preocupa haber roto algo. En algún momento, aparentemente había agregado la línea:
127.0.0.1 test.local
a /etc/hosts
. También había modificado httpd.conf
para usar la carpeta ~/test
como mi DocumentRoot
, y también había cambiado a extra/httpd-vhosts.conf
.
Restablecí los httpd*
archivos originales de la /etc/apache2/original
carpeta y restauré el /etc/hosts
archivo 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
¿Entonces qué hago? ¿Cómo puedo hacer que mi computadora 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 usa 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 en el error ( http://wiki.apache.org/hadoop/ConnectionRefused ), leo lo siguiente:
Si la aplicación o el clúster no funciona y este mensaje aparece en el registro, entonces es más grave.
- Verifique que el nombre de host que usa el cliente sea correcto
- Verifique que la dirección IP con la que el cliente intenta hablar para el nombre de host sea correcta.
- Asegúrese de que la dirección de destino en la excepción no sea 0.0.0.0, esto significa que en realidad no ha configurado al 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 cada puerto para conexiones.
- Verifique que no haya una entrada para su nombre de host asignado a 127.0.0.1 o 127.0.1.1 en / etc / hosts (Ubuntu es conocido por esto)
- Verifique el puerto con el que el cliente está tratando de hablar utilizando coincidencias en las que el servidor ofrece un servicio.
- En el servidor, pruebe a
telnet localhost <port>
para ver si el puerto está abierto allí.- En el cliente, intente con una
telnet <server> <port>
para ver si se puede acceder al puerto de forma remota.Ninguno de estos son problemas de Hadoop, son problemas de configuración de host, red y firewall. Como es su clúster, solo usted puede descubrir y localizar el problema.
y de hecho fallo en el penúltimo paso, que aparentemente debería funcionar; De ahí esta pregunta.
Respuestas:
Es normal obtenerlo
conection refused
si ustedftp
otelnet
localhost, al menos si no ha puesto en funcionamiento ese tipo de servidores, y de forma predeterminada, no lo hace.El
/etc/hosts
debería verse127.0.0.1 localhost
por defecto. Para usar apache y evitar el error que mencionó, debe agregarloServerName localhost
ahttpd.conf
. Reinicie apache y debería funcionar bien.No sé si esto también resuelve el error de Hadoop. No puedo ayudarte en eso. Solo intenta y házmelo saber.
fuente
¡Resulta que tenía "Inicio de sesión remoto" desactivado en Preferencias del sistema!
La solución fue:
Aunque también volví a formatear el disco duro y actualicé a Yosemite, tener una versión nueva de Apache probablemente también ayudó.
fuente
A veces, esta excepción se produce cuando uno inicia hadoop sin iniciar el namenode, por lo que antes de ejecutarlo
sbin/start-dfs.sh
es recomendable ejecutar:Buena suerte.
fuente
También recibo el mismo error al ejecutar
hadoop dfs -ls
Para mí fue un problema con el problema del permiso; ejecutar
hadoop namenode -format
y verificar si está obteniendo la siguiente excepción:Si está superando la excepción; dar permiso de escritura;
sudo chmod 777 /usr/local/hadoop/dfs/name/
hadoop namenode -format
para verificarfuente
chmod 777
podría ser un poco extremo aquí, ¿lo intentaste775
?