Strom在本地运行调试出现的错误
Posted juncaoit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Strom在本地运行调试出现的错误相关的知识,希望对你有一定的参考价值。
1.错误日志
31385 [main] WARN backtype.storm.daemon.nimbus - Topology submission exception. (topology name=‘webloganalyse2‘) #<InvalidTopologyException InvalidTopologyException(msg:Component: [countIpBolt] subscribes from non-existent stream: [ipCountStream] of component [webLogParserBolt])> 31385 [main] ERROR org.apache.storm.zookeeper.server.NioserverCnxnFactory - Thread Thread[main,5,main] died backtype.storm.generated.InvalidTopologyException: null at backtype.storm.daemon.common$validate_structure_BANG_.invoke(common.clj:172) ~[storm-core-0.9.6.jar:0.9.6] at backtype.storm.daemon.common$system_topology_BANG_.invoke(common.clj:307) ~[storm-core-0.9.6.jar:0.9.6] at backtype.storm.daemon.nimbus$fn__4261$exec_fn__1104__auto__$reify__4274.submitTopologyWithOpts(nimbus.clj:948) ~[storm-core-0.9.6.jar:0.9.6] at backtype.storm.daemon.nimbus$fn__4261$exec_fn__1104__auto__$reify__4274.submitTopology(nimbus.clj:966) ~[storm-core-0.9.6.jar:0.9.6] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144] at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) ~[clojure-1.5.1.jar:na] at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) ~[clojure-1.5.1.jar:na] at backtype.storm.testing$submit_local_topology.invoke(testing.clj:264) ~[storm-core-0.9.6.jar:0.9.6] at backtype.storm.LocalCluster$_submitTopology.invoke(LocalCluster.clj:43) ~[storm-core-0.9.6.jar:0.9.6] at backtype.storm.LocalCluster.submitTopology(Unknown Source) ~[storm-core-0.9.6.jar:0.9.6] at com.jun.it2.WebLogStatictis.main(WebLogStatictis.java:31) ~[classes/:na]
2.出现这个问题的原因
下游Bolt未定义数据流错误
在下游Bolt接收数据时,往往会忽略具体的接收数据流名称,例如
builder.setBolt(devInter, new InterBolt().shuffleGrouping(dev);
3.分析本日志
可以看到在webLogParserBolt.java中。
同时说明,在countIpBolt中不存在ipCountStream流名称。
4.看自己的程序、
5.修改后的程序
6.效果
这个时候,就不会再报错了。
以上是关于Strom在本地运行调试出现的错误的主要内容,如果未能解决你的问题,请参考以下文章