Java Apache Storm:InvalidTopologyException(消息:组件:[x]从不存在的组件[y]订阅)

Java Apache Storm:InvalidTopologyException(消息:组件:[x]从不存在的组件[y]订阅),java,apache-storm,Java,Apache Storm,我使用的代码来自(工作正常): 但是,当我调整它,使其具有两个可以读取行的喷口,将行发送到两个字吐器螺栓,并最终将结果发送到单个字计数器螺栓时,将抛出无效拓扑的异常 我修改过的代码 TopologyBuilder builder = new TopologyBuilder(); builder.setSpout("line-reader-spout", new LineReaderSpout()); builder.setSpout("line-reader-spout2", new Line

我使用的代码来自(工作正常):

但是,当我调整它,使其具有两个可以读取行的喷口,将行发送到两个
字吐器
螺栓,并最终将结果发送到单个
字计数器
螺栓时,将抛出无效拓扑的异常

我修改过的代码

TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("line-reader-spout", new LineReaderSpout());
builder.setSpout("line-reader-spout2", new LineReaderSpout());        
builder.setBolt("word-spitter", new WordSpitterBolt()).shuffleGrouping("line-reader-spout");
builder.setBolt("word-spitter2", new WordSpitterBolt()).shuffleGrouping("line-reader-spout2");
builder.setBolt("word-counter", new WordCounterBolt(),2).shuffleGrouping("word-spitter").shuffleGrouping("word-splitter2");
LocalCluster cluster = new LocalCluster();
cluster.submitTopology("HelloStorm", config, builder.createTopology());
拓扑有什么问题?我没有看到任何不正确的流程。当实际创建时,
word-spitter2
怎么可能不存在

6661[main]信息b.s.d.nimbus-[req 1]访问来源:委托人: op:submitTopology 6718[主]警告b.s.d.nimbus-拓扑提交 异常。(拓扑名称='HelloStorm')#InvalidTopologyException InvalidTopologyException(消息:组件:[字计数器]订阅自 不存在组件[word-splitter2])6721[main]错误 o、 a.s.s.o.a.z.s.NIOServerCNXNFFactory-线程[main,5,main]已死亡 backtype.storm.generated.InvalidTopologyException位于 backtype.storm.daemon.common$validate\u structure\u BANG\u.invoke(common.clj:160) ~[storm-core-0.10.0.jar:0.10.0]at backtype.storm.daemon.common$system\u topology\u BANG\u.invoke(common.clj:299) ~[storm-core-0.10.0.jar:0.10.0]at backtype.storm.daemon.nimbus$fn_u6583$exec_ufn_u1236_u_u自动_u$reify_u6598.提交选项(nimbus.clj:1091) ~[storm-core-0.10.0.jar:0.10.0]at backtype.storm.daemon.nimbus$fn_6583$exec_fn_1236__自动__$reify_6598.提交策略(nimbus.clj:1119) ~[storm-core-0.10.0.jar:0.10.0]at sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 约[?:1.8.0_73]at invoke(NativeMethodAccessorImpl.java:62) 约[?:1.8.0_73]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:497)的~[?:1.8.073] 约[?:1.8.0_73]at invokeMatchingMethod(Reflector.java:93) ~[clojure-1.6.0.jar:?]at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) ~[clojure-1.6.0.jar:?]at backtype.storm.testing$submit\u local\u topology.invoke(testing.clj:276) ~[storm-core-0.10.0.jar:0.10.0]at backtype.storm.LocalCluster$\u submitTopology.invoke(LocalCluster.clj:43) ~[storm-core-0.10.0.jar:0.10.0]at backtype.storm.LocalCluster.submitTopology(未知源) ~[storm-core-0.10.0.jar:0.10.0]at com.spnotes.storm.HelloStorm.main(HelloStorm.java:36)~[classes/:?]


你的拼写错误是-splitter2

builder.setBolt(“word-spitter2”,new-WordSpitterBolt()).shufflegroup(“line-reader-spout2”); builder.setBolt(“单词计数器”,new-WordCounterBolt(),2)、shufflegroup(“单词吐出器”)、shufflegroup(“word-splitter2”)

TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("line-reader-spout", new LineReaderSpout());
builder.setSpout("line-reader-spout2", new LineReaderSpout());        
builder.setBolt("word-spitter", new WordSpitterBolt()).shuffleGrouping("line-reader-spout");
builder.setBolt("word-spitter2", new WordSpitterBolt()).shuffleGrouping("line-reader-spout2");
builder.setBolt("word-counter", new WordCounterBolt(),2).shuffleGrouping("word-spitter").shuffleGrouping("word-splitter2");
LocalCluster cluster = new LocalCluster();
cluster.submitTopology("HelloStorm", config, builder.createTopology());