0

J'ai configuré Hadoop (2.6.0) avec le mode multi-machines: 1 namenode + 3 datanodes. Quand j'ai utilisé la commande: start-all.sh, ils (nom de connexion, datanode, gestionnaire de ressources, gestionnaire de noeud) fonctionnaient bien. Je l'ai vérifié avec commande JPS et le résultat sur chaque nœud étaient ci-dessous:ConnectException: Connexion refusée lors de l'exécution de mapreduce dans Hadoop

NameNode:

7300 ResourceManager

6942 NameNode

7154 SecondaryNameNode

DataNodes:

3840 DataNode

3924 NodeManager

Je fichier texte exemple également téléchargé sur HDFS à:/user/hadoop/data/sample.txt. Absolument aucune erreur à ce moment-là.

Mais quand j'ai essayé de courir un MapReduce avec le pot de exemple Hadoop:

hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /user/hadoop/data/sample.txt /user/hadoop/output

J'ai cette erreur:

15/04/08 03:31:26 INFO mapreduce.Job: Job job_1428478232474_0001 running in uber mode : false 
15/04/08 03:31:26 INFO mapreduce.Job: map 0% reduce 0% 
15/04/08 03:31:26 INFO mapreduce.Job: Job job_1428478232474_0001 failed with  state FAILED due to: Application application_1428478232474_0001 failed 2 times due to Error launching appattempt_1428478232474_0001_000002. Got exception: java.net.ConnectException: Call From hadoop/127.0.0.1 to localhost:53245 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791) 
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:731) 
at org.apache.hadoop.ipc.Client.call(Client.java:1472) 
at org.apache.hadoop.ipc.Client.call(Client.java:1399) 
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232) 
at com.sun.proxy.$Proxy31.startContainers(Unknown Source) 
at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:96) 
at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.launch(AMLauncher.java:119) 
at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.run(AMLauncher.java:254) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: 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:607) 
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:705) 
at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:368) 
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1521) 
at org.apache.hadoop.ipc.Client.call(Client.java:1438) 
    ... 9 more Failing the application. 
15/04/08 03:31:26 INFO mapreduce.Job: Counters: 0 

A propos de la configuration, vous que NameNode peut ssh à DataNodes et vice versa sans mot de passe rapide.J'ai également dissous IP6 et modifié/etc/hosts fichier:

127.0.0.1 localhost hadoop

192.168.56.102 hadoop-nn

192.168.56.103 hadoop-dn1

192.168.56.104 hadoop-dn2

192.168.56.105 hadoop-dn3

Je ne sais pas pourquoi mapreduced ne peut pas fonctionner même si namenode et datanodes ont bien fonctionné. Je suis presque coincé ici, pouvez-vous m'aider à trouver la raison ??

Merci

Edit: Ici config dans HDFS-site.xml (NameNode):

<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>file:///usr/local/hadoop/hadoop_stores/hdfs/namenode</value> 
    <description>NameNode directory for namespace and transaction logs storage.</description> 
</property> 
<property> 
    <name>dfs.replication</name> 
    <value>3</value> 
</property> 
<property> 
    <name>dfs.permissions</name> 
    <value>false</value> 
</property> 
<property> 
    <name>dfs.datanode.use.datanode.hostname</name> 
    <value>false</value> 
</property> 
<property> 
    <name>dfs.namenode.datanode.registration.ip-hostname-check</name> 
    <value>false</value> 
</property> 
<property> 
    <name>dfs.namenode.http-address</name> 
    <value>hadoop-nn:50070</value> 
    <description>Your NameNode hostname for http access.</description> 
</property> 
<property> 
    <name>dfs.namenode.secondary.http-address</name> 
    <value>hadoop-nn:50090</value> 
    <description>Your Secondary NameNode hostname for http access.</description> 
</property> 

En DataNodes:

<property> 
    <name>dfs.datanode.data.dir</name> 
    <value>file:///usr/local/hadoop/hadoop_stores/hdfs/data/datanode</value> 
    <description>DataNode directory</description> 
</property> 

<property> 
    <name>dfs.replication</name> 
    <value>3</value> 
</property> 
<property> 
    <name>dfs.permissions</name> 
    <value>false</value> 
</property> 
<property> 
    <name>dfs.datanode.use.datanode.hostname</name> 
    <value>false</value> 
</property> 
<property> 
    <name>dfs.namenode.http-address</name> 
    <value>hadoop-nn:50070</value> 
    <description>Your NameNode hostname for http access.</description> 
</property> 
<property> 
    <name>dfs.namenode.secondary.http-address</name> 
    <value>hadoop-nn:50090</value> 
    <description>Your Secondary NameNode hostname for http access.</description> 

Voici le résultat avec la commande : hadoop fs -ls/utilisateur/hadoop/données

[email protected]:~/DATA$ hadoop fs -ls /user/hadoop/data 15/04/09 00:23:27 Found 2 items

-rw-r--r-- 3 hadoop supergroup 29 2015-04-09 00:22 >/user/hadoop/data/sample.txt

-rw-r--r-- 3 hadoop supergroup 27 2015-04-09 00:22 >/user/hadoop/data/sample1.txt

Hadoop fs -ls/user/Hadoop/sortie

ls: `/user/hadoop/output': No such file or directory

+0

Avez-vous formater votre 'namenode' en premier? Y a-t-il aussi une ligne avec '127.0.1.1' dans votre fichier'/etc/hosts'? –

+0

Oui, j'ai formater le namenode et le journal ne montre aucune erreur. Avons-nous besoin de 127.0.1.1 dans le fichier hosts après la ligne 127.0.0.1 aussi? – kate

+0

'127.0.1.1' n'est pas nécessaire car il provoque des problèmes de connexion pour la plupart. Pouvez-vous poster votre 'hdfs-site.xml'? –

Répondre

0

solution trouvée !! voir ce post yarn shows data nodes id/name as localhost

Call From localhost.localdomain/127.0.0.1 to localhost.localdomain:56148 failed on connection exception: java.net.ConnectException: Connection refused; 

maître et esclaves éprouvaient des noms d'hôtes de localhost.localdomain dans/etc/nom d'hôte.
J'ai changé le nom d'hôte des esclaves en esclave1 et esclave2. Ça a marché. Merci à tous pour votre temps. @kate Assurez-vous que le nom etc/hostname dans namenode et les datanodes ne sont pas définis sur localhost. Il suffit de taper ~ # hostname dans le terminal pour voir. Vous pouvez définir un nouveau nom d'hôte par la même commande.

Mon maître et de travailleurs ou esclaves/etc/hosts ressemble this-

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
#127.0.1.1 localhost 
192.168.111.72 master 
192.168.111.65 worker1 
192.168.111.66 worker2 
nom d'hôte

de worker1

[email protected]:/mnt/hdfs/datanode$ cat /etc/hostname 
worker1 

et worker2

[email protected]:/usr/local/hadoop/logs$ cat /etc/hostname 
worker2 

En outre, vous avez probablement don ne veut pas avoir "hadoop" hostname avec l'interface de bouclage. à savoir

127.0.0.1 localhost hadoop 

Vérifier ce point (1) dans https://wiki.apache.org/hadoop/ConnectionRefused.

Merci.

+0

Sr, mais auriez-vous l'esprit détail abt contenu dans votre etc/hostname (esclaves et maître) qui a fait votre travail de compte de ur, pls? toujours pas comprendre. – kate

+0

Merci Rajesh – kate

0

FIREWALL NUMÉRO:

Cette erreur peut être due à des problèmes de pare-feu. Pour ce faire, dans le terminal:

sudo apt-get install iptables-persistent 
sudo iptables -L 
sudo iptables-save > /usr/iptables-backup/iptables.v4.rules 

Vérifiez si le fichier est créé avant de poursuivre (car il sera utilisé pour restaurer le pare-feu en cas de problème).

Maintenant, chassez les règles iptables (c.-à-d.pare-feu stop):

sudo iptables -F 

Maintenant, essayez,

sudo iptables -L 

Cette commande devrait pas de règles. Maintenant, essayez d'exécuter votre carte/réduire le travail.

Note: Si vous souhaitez restaurer iptables à l'état précédent, tapez ce dans le terminal:

sudo iptables-restore < /usr/iptables-backup/iptables.v4.rules

+0

Désolé, mais j'ai d'abord vérifié la règle de la liste: iptables --list Il a juste 3 règles: Chaîne INPUT (politique ACCEPT) cible de destination source opt prot chaîne FORWARD (politique ACCEPT) cible de destination source opt prot chaîne SORTIE (politique ACCEPT) cible de destination source opt prot. Mais après suivre votre réponse, il a plus que cela: Est-ce que cela devrait être votre moyen? (Vous devez demander d'abord avant de l'appliquer aux autres noeuds) – kate

+0

Cela signifie que votre «pare-feu est désactivé». Après avoir terminé ceci sur le système namenode, essayez d'exécuter le travail wordcount. Si l'erreur persiste, essayez cette méthode sur tous les datanodes, puis exécutez le travail wordcount. –

+0

J'ai essayé ceci sur tous les namenode et datanodes, mais toujours cette erreur. Quand j'ai vérifié les ports avec: "netstat -a | egrep 'Proto | LISTEN'"; il liste tous les ports écoutent. Et constaté que pas de port 53245 (celui était dans l'erreur de journal). Et aussi dans le fichier de configuration (hdfs, mapred, yarn, core-site) n'a aucune entrée a ce port. Je me demande d'où vient ce port 53245 ?? – kate