Cercando di far funzionare Hadoop; "Connessione rifiutata" in Hadoop e in Telnet

0

Stavo cercando di far funzionare Hadoop in modalità standalone sul mio MBP (OS 10.9.5), ma continuavo a ricevere errori di "connessione rifiutata". Ho trovato che telnet localhost 9000 dà lo stesso errore, che è quello che mi è stato detto di provare come diagnostica. La stessa cosa succede se provo 127.0.0.1 invece di localhost , o se provo ftp invece di telnet . Tuttavia ping localhost e ssh localhost funzionano bene.

Mi ero incasinato un po 'di tempo fa con l'installazione di un server Apache, e sono preoccupato che avrei potuto rompere qualcosa. A un certo punto, apparentemente ho aggiunto la linea:

127.0.0.1    test.local

a /etc/hosts . Ho anche modificato httpd.conf per usare la cartella ~/test come DocumentRoot , e anch'io sono passati a extra/httpd-vhosts.conf .

Ho ripristinato i file httpd* originali dalla cartella /etc/apache2/original e ho ripristinato il file /etc/hosts al suo stato originale. apachectl configtest mi dà:

httpd: Could not reliably determine the server's fully qualified domain name, using <username>.local for ServerName
Syntax OK

Quindi cosa faccio? Come posso impedire al mio computer di rifiutare la connessione? Non so molto su reti o server.

Per completezza, ecco l'errore telnet originale:

$ 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

e il mio /etc/hosts file:

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

e l'errore Hadoop che utilizza la stessa lingua di "connessione rifiutata" come 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

Seguendo il link nell'errore ( link ), ho letto quanto segue:

If the application or cluster is not working, and this message appears in the log, then it is more serious.

  • Check the hostname the client using is correct
  • Check the IP address the client is trying to talk to for the hostname is correct.
  • Make sure the destination address in the exception isn't 0.0.0.0 -this means that you haven't actually configured the client with the real address for that service, and instead it is picking up the server-side property telling it to listen on every port for connections.
  • Check that there isn't an entry for your hostname mapped to 127.0.0.1 or 127.0.1.1 in /etc/hosts (Ubuntu is notorious for this)
  • Check the port the client is trying to talk to using matches that the server is offering a service on.
  • On the server, try a telnet localhost <port> to see if the port is open there.
  • On the client, try a telnet <server> <port> to see if the port is accessible remotely.

None of these are Hadoop problems, they are host, network and firewall configuration issues. As it is your cluster, only you can find out and track down the problem.

e infatti fallisco nel penultimo passaggio, che a quanto pare dovrebbe funzionare; quindi questa domanda.

    
posta shadowtalker 29.10.2014 - 08:41
fonte

4 risposte

0

È risultato che "Login remoto" era disabilitato in Preferenze di sistema!

La soluzione era:

System Preferences -> Sharing -> Check the "Remote Login" box

Anche se sono stato riformattato dal disco rigido e aggiornato a Yosemite, probabilmente anche l'utilizzo di una nuova versione di Apache è stato utile.

    
risposta data 22.02.2015 - 18:27
fonte
0

È normale ottenere conection refused se ftp o telnet a localhost, almeno se non hai installato quel tipo di server e per impostazione predefinita non lo fai.

Per impostazione predefinita, /etc/hosts dovrebbe apparire come 127.0.0.1 localhost . Per utilizzare apache ed evitare l'errore che hai citato, devi aggiungere ServerName localhost a httpd.conf . Riavvia apache e dovrebbe funzionare correttamente.

Non so se questo risolva anche l'errore Hadoop. Non posso aiutarti su di esso Prova e fammi sapere.

    
risposta data 29.10.2014 - 08:58
fonte
0

A volte questa eccezione viene lanciata quando si avvia hadoop senza avviare il namenode, quindi prima di eseguire sbin/start-dfs.sh è consigliabile eseguire:

bin/hdfs namenode

Buona fortuna.

    
risposta data 01.03.2018 - 23:47
fonte
0

Sto ottenendo lo stesso errore durante l'esecuzione di 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

Per me è stato un problema con il problema dei permessi; esegui hadoop namenode -format e controlla se stai ricevendo un'eccezione:

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

Se stai ricevendo un'eccezione sopra; dare il permesso di scrivere;

  • Stop hadoop
  • sudo chmod 777 /usr/local/hadoop/dfs/name/
  • Avvia hadoop
  • hadoop namenode -format per verificare
risposta data 13.10.2018 - 11:14
fonte

Leggi altre domande sui tag