错误log:
3530 [main] WARN o.a.s.d.nimbus - Topology submission exception. (topology name='Getting-Started-Topology') #error {
:cause nil
:via
[{:type org.apache.storm.generated.InvalidTopologyException
:message nil
:at [org.apache.storm.daemon.common$validate_structure_BANG_ invoke common.clj 181]}]
:trace
[[org.apache.storm.daemon.common$validate_structure_BANG_ invoke common.clj 181]
[org.apache.storm.daemon.common$system_topology_BANG_ invoke common.clj 360]
[org.apache.storm.daemon.nimbus$fn__7064$exec_fn__2461__auto__$reify__7093 submitTopologyWithOpts nimbus.clj 1512]
[org.apache.storm.daemon.nimbus$fn__7064$exec_fn__2461__auto__$reify__7093 submitTopology nimbus.clj 1544]
[sun.reflect.NativeMethodAccessorImpl invoke0 NativeMethodAccessorImpl.java -2]
[sun.reflect.NativeMethodAccessorImpl invoke NativeMethodAccessorImpl.java 62]
[sun.reflect.DelegatingMethodAccessorImpl invoke DelegatingMethodAccessorImpl.java 43]
[java.lang.reflect.Method invoke Method.java 498]
[clojure.lang.Reflector invokeMatchingMethod Reflector.java 93]
[clojure.lang.Reflector invokeInstanceMethod Reflector.java 28]
[org.apache.storm.testing$submit_local_topology invoke testing.clj 301]
[org.apache.storm.LocalCluster$_submitTopology invoke LocalCluster.clj 49]
[org.apache.storm.LocalCluster submitTopology nil -1]
[TopologyMain main TopologyMain.java 36]]}
3530 [main] ERROR o.a.s.s.o.a.z.s.NIOServerCnxnFactory - Thread Thread[main,5,main] died
org.apache.storm.generated.InvalidTopologyException
at org.apache.storm.daemon.common$validate_structure_BANG_.invoke(common.clj:181) ~[storm-core-1.0.1.jar:1.0.1]
at org.apache.storm.daemon.common$system_topology_BANG_.invoke(common.clj:360) ~[storm-core-1.0.1.jar:1.0.1]
at org.apache.storm.daemon.nimbus$fn__7064$exec_fn__2461__auto__$reify__7093.submitTopologyWithOpts(nimbus.clj:1512) ~[storm-core-1.0.1.jar:1.0.1]
at org.apache.storm.daemon.nimbus$fn__7064$exec_fn__2461__auto__$reify__7093.submitTopology(nimbus.clj:1544) ~[storm-core-1.0.1.jar:1.0.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_231]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_231]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_231]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_231]
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) ~[clojure-1.7.0.jar:?]
at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) ~[clojure-1.7.0.jar:?]
at org.apache.storm.testing$submit_local_topology.invoke(testing.clj:301) ~[storm-core-1.0.1.jar:1.0.1]
at org.apache.storm.LocalCluster$_submitTopology.invoke(LocalCluster.clj:49) ~[storm-core-1.0.1.jar:1.0.1]
at org.apache.storm.LocalCluster.submitTopology(Unknown Source) ~[storm-core-1.0.1.jar:1.0.1]
at TopologyMain.main(TopologyMain.java:36) ~[classes/:?]
解决办法:
- 二分法,在setBolt的位置 找到出错的bolt
- 关注出错的bolt 的grouping机制API是否出错。(例如:fieldsGrouping机制,是否设置了componentId、streamId、Fields。)
参考: