Intentando que Hadoop trabaje; "Conexión rechazada" en Hadoop y en Telnet

0

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 9000da el mismo error, que es lo que me dijeron que probara como diagnóstico. Lo mismo sucede si lo intento en 127.0.0.1lugar de localhost, o si lo intento en ftplugar de telnet. Sin embargo ping localhosty ssh localhostfunciona 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.confpara usar la carpeta ~/testcomo mi DocumentRoot, y también había cambiado a extra/httpd-vhosts.conf.

Restablecí los httpd*archivos originales de la /etc/apache2/originalcarpeta y restauré el /etc/hostsarchivo a su estado original. apachectl configtestme 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/hostsarchivo:

##
# 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.

Shadowtalker
fuente
¿Esta pregunta sería más adecuada para StackOverflow? Todavía no me he dado cuenta de esto.
shadowtalker

Respuestas:

0

Es normal obtenerlo conection refusedsi usted ftpo telnetlocalhost, al menos si no ha puesto en funcionamiento ese tipo de servidores, y de forma predeterminada, no lo hace.

El /etc/hostsdebería verse 127.0.0.1 localhostpor defecto. Para usar apache y evitar el error que mencionó, debe agregarlo ServerName localhosta httpd.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.

jherran
fuente
¿ Debo estar usando Apache? Mi impresión del tutorial de Hadoop ( hadoop.apache.org/docs/current/hadoop-project-dist/… ) es que debería funcionar de fábrica sin ninguna configuración del servidor.
shadowtalker
0

¡Resulta que tenía "Inicio de sesión remoto" desactivado en Preferencias del sistema!

La solución fue:

Preferencias del sistema -> Compartir -> Marque la casilla "Inicio de sesión remoto"

Aunque también volví a formatear el disco duro y actualicé a Yosemite, tener una versión nueva de Apache probablemente también ayudó.

Shadowtalker
fuente
0

A veces, esta excepción se produce cuando uno inicia hadoop sin iniciar el namenode, por lo que antes de ejecutarlo sbin/start-dfs.shes recomendable ejecutar:

bin/hdfs namenode

Buena suerte.

Tenflex
fuente
0

También recibo el mismo error al ejecutar hadoop dfs -ls

<HOSTNAME> to 0.0.0.0:9000 failed on connection
exception: java.net.ConnectException: Connection refused; 
For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

Para mí fue un problema con el problema del permiso; ejecutar hadoop namenode -formaty verificar si está obteniendo la siguiente excepción:

java.io.IOException: Cannot create directory /usr/local/hadoop/dfs/name/current
java.io.IOException: Cannot create directory /usr/local/hadoop/dfs/name/current

Si está superando la excepción; dar permiso de escritura;

  • Dejar de hadoop
  • sudo chmod 777 /usr/local/hadoop/dfs/name/
  • Iniciar hadoop
  • hadoop namenode -format para verificar
Rakesh Jha
fuente
chmod 777podría ser un poco extremo aquí, ¿lo intentaste 775?
nohillside