2016-03-24 4 views
1

Ich habe einen Sturmcluster auf 10 VMs eingerichtet und auf der Storm UI-Seite verifiziert, dass dort alle 10 Supervisors angezeigt werden.Netzwerkfehler im Sturm, wie debuggen?

Aber wenn ich eine JAR-Datei mit bin/storm jar my.jar my.class --remote übergebe, sehe ich den folgenden Fehler auf allen Supervisor-Knoten und alle Supervisor-Knoten sterben.

2016-03-24 22:06:52.703 o.a.s.s.o.a.z.ClientCnxn [INFO] Opening socket connection to server 10.10.10.147/10.10.10.147:2181. Will not attempt to authenticate using SASL (unknown error) 
2016-03-24 22:06:52.704 o.a.s.s.o.a.z.ClientCnxn [INFO] Socket connection established to 10.10.10.147/10.10.10.147:2181, initiating session 
2016-03-24 22:06:52.709 o.a.s.s.o.a.z.ClientCnxn [INFO] Session establishment complete on server 10.10.10.147/10.10.10.147:2181, sessionid = 0x253355aaaaa001a, negotiated timeout = 20000 
2016-03-24 22:06:52.712 o.a.s.s.o.a.c.f.s.ConnectionStateManager [INFO] State change: CONNECTED 
2016-03-24 22:06:52.765 b.s.d.supervisor [INFO] Starting supervisor with id 27e6171a-2e94-491f-b961-777067660304 at host storm-supervisor-1-11026402-1-109466741.example.company.com 
2016-03-24 22:08:10.286 b.s.d.supervisor [INFO] Downloading code for storm id kafka-elastic-topology-2-1458856253 from /var/storm/storm-local/nimbus/stormdist/kafka-elastic-topology-2-1458856253 
2016-03-24 22:08:10.297 b.s.u.StormBoundedExponentialBackoffRetry [INFO] The baseSleepTimeMs [2000] the maxSleepTimeMs [60000] the maxRetries [5] 
2016-03-24 22:08:20.361 b.s.event [ERROR] Error when processing event 
java.lang.RuntimeException: org.apache.thrift7.transport.TTransportException: java.net.ConnectException: Connection refused 
    at backtype.storm.security.auth.TBackoffConnect.retryNext(TBackoffConnect.java:59) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.security.auth.TBackoffConnect.doConnectWithRetry(TBackoffConnect.java:51) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.security.auth.ThriftClient.reconnect(ThriftClient.java:103) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.security.auth.ThriftClient.<init>(ThriftClient.java:72) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.utils.NimbusClient.<init>(NimbusClient.java:74) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.utils.NimbusClient.getConfiguredClient(NimbusClient.java:37) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.utils.Utils.downloadFromMaster(Utils.java:361) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.daemon.supervisor$fn__7720.invoke(supervisor.clj:581) ~[storm-core-0.10.0.jar:0.10.0] 
    at clojure.lang.MultiFn.invoke(MultiFn.java:241) ~[clojure-1.6.0.jar:?] 
    at backtype.storm.daemon.supervisor$mk_synchronize_supervisor$this__7638.invoke(supervisor.clj:465) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.event$event_manager$fn__7258.invoke(event.clj:40) [storm-core-0.10.0.jar:0.10.0] 
    at clojure.lang.AFn.run(AFn.java:22) [clojure-1.6.0.jar:?] 
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] 
Caused by: org.apache.thrift7.transport.TTransportException: java.net.ConnectException: Connection refused 
    at org.apache.thrift7.transport.TSocket.open(TSocket.java:187) ~[storm-core-0.10.0.jar:0.10.0] 
    at org.apache.thrift7.transport.TFramedTransport.open(TFramedTransport.java:81) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.security.auth.SimpleTransportPlugin.connect(SimpleTransportPlugin.java:103) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.security.auth.TBackoffConnect.doConnectWithRetry(TBackoffConnect.java:48) ~[storm-core-0.10.0.jar:0.10.0] 
    ... 11 more 
Caused by: java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_51] 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) ~[?:1.8.0_51] 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[?:1.8.0_51] 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[?:1.8.0_51] 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[?:1.8.0_51] 
    at java.net.Socket.connect(Socket.java:589) ~[?:1.8.0_51] 
    at org.apache.thrift7.transport.TSocket.open(TSocket.java:182) ~[storm-core-0.10.0.jar:0.10.0] 
    at org.apache.thrift7.transport.TFramedTransport.open(TFramedTransport.java:81) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.security.auth.SimpleTransportPlugin.connect(SimpleTransportPlugin.java:103) ~[storm-core-0.10.0.jar:0.10.0] 
    at backtype.storm.security.auth.TBackoffConnect.doConnectWithRetry(TBackoffConnect.java:48) ~[storm-core-0.10.0.jar:0.10.0] 
    ... 11 more 
2016-03-24 22:08:20.376 b.s.util [ERROR] Halting process: ("Error when processing an event") 
java.lang.RuntimeException: ("Error when processing an event") 
    at backtype.storm.util$exit_process_BANG_.doInvoke(util.clj:336) [storm-core-0.10.0.jar:0.10.0] 
    at clojure.lang.RestFn.invoke(RestFn.java:423) [clojure-1.6.0.jar:?] 
    at backtype.storm.event$event_manager$fn__7258.invoke(event.clj:48) [storm-core-0.10.0.jar:0.10.0] 
    at clojure.lang.AFn.run(AFn.java:22) [clojure-1.6.0.jar:?] 
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] 
2016-03-24 22:08:20.381 b.s.d.supervisor [INFO] Shutting down supervisor 27e6171a-2e94-491f-b961-777067660304 

Die gleiche Topologie und die JAR-Datei arbeiten, als ich auf 10 Äquivalent nicht-VMs

ausgeführt wurde, so scheint es, dass der Fehler auf die Vernetzung zwischen den VMs zusammenhängt.

Weiß jemand wie ich das debuggen kann?

Bitte beachten Sie, dass ich die IP-Adressen 10.10.10 ... manuell in den Protokollen geändert habe, um zu vermeiden, dass echte E-Mails hier veröffentlicht werden.

Antwort

0

Alle Ports auf den Nicht-VMs (d. H. Die physischen Maschinen) waren offen und konnten daher miteinander kommunizieren. Dies war auf den VMs nicht so.

Dinge haben gut funktioniert, wenn ich die entsprechenden Ports 6700-6705 geöffnet, 8000 und 8080.

Aber die Fehlermeldung ist wirklich irreführend. Es sollte expliziter mit dem Host-Namen und dem verwendeten Port sein.