hadoop - Verbindung verweigert namenode
Ich gesucht habe web-und stackoverflow für eine lange Zeit, aber es war nicht nützlich.
Habe ich installiert hadoop yarn 2.2.0 in 2 Knoten-cluster-setup. aber etwas geht schief.
wenn ich starten hadoop daemons mit start-dfs.sh und start-yarn.sh auf dem master-Knoten, die Sie erfolgreich führen in master-und slave (meine master-hostname ist RM und mein Sklave der hostname ist slv). Sie können ssh einander erfolgreich. aber wenn ich will, um einen job ausführen, wird diese Fehlermeldung angezeigt:
14/01/02 04:22:53 WARNEN util.NativeCodeLoader: Unable to load native hadoop-Bibliothek für Ihre Plattform... mit dem builtin-java-Klassen, wo zutreffend
14/01/02 04:22:56 WARNEN hdfs.DFSClient: DataStreamer Ausnahme
org.apache.hadoop.ipc.RemoteException(java.io.IOException: Datei /Benutzer/root/QuasiMonteCarlo_1388665371850_813553673/in/part0 konnte nur repliziert werden, auf 0 Knoten statt minReplication (=1). Es sind 0 datanode(s) ausgeführt werden und kein Knoten(s) sind nicht in diesem Betrieb.
bei org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1384)
bei org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2477)
bei org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:555)
bei org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSidetranslatorpb.addBlock(ClientNamenodeProtocolServerSidetranslatorpb.java:387)
bei org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:59582)
bei org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
bei org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)
bei org.apache.hadoop.ipc.Server$Handler,$1.führen Sie(auf dem Server.java:2048)
bei org.apache.hadoop.ipc.Server$Handler,$1.führen Sie(auf dem Server.java:2044)
bei java.Sicherheit.AccessController.doPrivileged(Native Method)
bei javax.Sicherheit.auth.Thema.doAs(Subject.java:416)
bei org.apache.hadoop.Sicherheit.UserGroupInformation.doAs(UserGroupInformation.java:1491)
bei org.apache.hadoop.ipc.Server$Handler.führen Sie(auf dem Server.java:2042)
at org.apache.hadoop.ipc.Client.call(Client.java:1347)
at org.apache.hadoop.ipc.Client.call(Client.java:1300)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
at com.sun.proxy.$Proxy9.addBlock(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:186)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
at com.sun.proxy.$Proxy9.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:330)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1226)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1078)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:514)
und in datanode Protokoll dieses Protokoll existiert:
2014-01-02 04:40:31,616 WARNEN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem bei der Verbindung zum server: RM/192.168.1.101:9000
2014-01-02 04:40:37,618 INFO org.apache.hadoop.ipc.AUFTRAGGEBER: erneuter Versuch eine Verbindung zum server: RM/192.168.1.101:9000. Schon versucht 0 Zeit(s)$
2014-01-02 04:40:38,619 INFO org.apache.hadoop.ipc.AUFTRAGGEBER: erneuter Versuch eine Verbindung zum server: RM/192.168.1.101:9000. Habe bereits versucht 1 Zeit(s)$
2014-01-02 04:40:39,620 INFO org.apache.hadoop.ipc.AUFTRAGGEBER: erneuter Versuch eine Verbindung zum server: RM/192.168.1.101:9000. Schon versucht 2 Zeit(s)$
2014-01-02 04:40:40,621 INFO org.apache.hadoop.ipc.AUFTRAGGEBER: erneuter Versuch eine Verbindung zum server: RM/192.168.1.101:9000. Habe bereits versucht 3 Zeit(s)
Überprüfte ich den port 9000 auf dem master-Knoten und die Ausgabe ist:
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 10227/java
Ich denke das problem wird verursacht, durch den Grund, dass in der slave-Knoten, wenn ich
telnet RM 9000
er sagt
Versuchen 192.168.1.101...
telnet: Unable to connect to remote host: Connection refused
jedoch
telnet RM
Ausgabe :
Versuchen 192.168.1.101...
Angeschlossenen RM.
Escape character is '^]'.
Ubuntu 12.04.2 LTS
RM login:
für weitere Informationen auf meine /etc/hosts auf dem master und dem slave ist wie folgt:
127.0.0.1 RM|slv localhost
192.168.1.101 RM
192.168.1.103 slv
kann jemand empfehlen, mir eine Lösung?
jede Hilfe wird wirklich geschätzt.
Dank
- Sind Sie mit iptables auf der namenode? Oder etwas anderes, das wäre die Beschränkung des Zugangs zu port 9000?
- Guter Bericht, danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem ist, dass Ihr master hört auf
127.0.0.1:9000
, so datanode kann sich nicht anschließen, denn es ist nicht das hören an192.168.1.101:9000
(theoretisch, ein guter Ort zu hören ist0.0.0.0:9000
da vermeidet diese Probleme, scheint aber diese Konfiguration wird nicht akzeptiert).Vielleicht fix wird ändern Ihre
/etc/hosts
löschen der ersten Zeile, oder versuchen Sie es zuerst nur mit:-- Bearbeiten: Kommentare Lesen Balg
Ich hatte das gleiche problem, ich habe
in core-site.xml zu
und es funktionierte
Ich hatte das gleiche Problem. Nach lief jps, können wir sehen, alle die namenode und datanode laufen. aber können nicht sehen, die aktiven Knoten in der web-Seite. Und ich fand legte ich
127.0.0.1 master
im/etc/hosts
. Nachdem es entfernt. die slaves könnentelnet master 9000
.Meine
/etc/hosts
aussieht: