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());