【发布时间】:2015-11-13 16:34:18
【问题描述】:
我正在运行一个风暴三叉戟拓扑,在两个不同的流中有两个不同的 spout。我的 spout 是 JMS spout,使用 HDFS State 来持久化元组。
如果我只运行一个 spout 就可以正常工作,我会将所有记录发布到 HDFS 中的 JMS 队列中。
在使用连接到两个不同队列的两个 spout 运行拓扑时,与我在 QUEUE 中发布的记录相比,我得到的记录更少。我在这里做错了什么吗。如果我这样做的方式有任何问题,请告诉我。
TridentTopology topology = new TridentTopology();
topology.newStream("QueueSpout", TridentSpout).partitionPersist(tradeStateFactory,hdfsFields, new HdfsUpdater());
Stream TopicStream = topology.newStream("TopicSpout", TridentTopicSpout);
TopicStream.each(hdfsFields, new CashFilter()).partitionPersist(cashStateFactory, hdfsFields, new HdfsUpdater());
TopicStream.each(hdfsFields, new JournalFilter()).partitionPersist(journalStateFactory, hdfsFields, new HdfsUpdater());
TopicStream.each(hdfsFields, new RcvdlvrFilter()).partitionPersist(rcvdlvrStateFactory, hdfsFields, new HdfsUpdater());
【问题讨论】:
标签: hadoop jms hdfs apache-storm trident