使用nimbus客户端从发出的元组中获取值

时间:2015-12-30 20:04:57

标签: java apache-storm nimbus

我在远程群集上有一个正在运行的拓扑......像魅力一样运行......

StormTopology runningTopology= new StormTopology();
nimbus.getClient().send_getTopology("MyNewTopo-14-1451353801");
runningTopology = nimbus.getClient().recv_getTopology();
Bolt readerBolt = new Bolt();

readerBolt = runningTopology.get_bolts().get("determineClickType");    
System.out.println("Bolt com : " + readerBolt.get_bolt_object().toString());

/* Console dump: */
/* Returns: <ComponentObject serialized_java:80 01 80 01 00 02 00 00 00 ....... */ 

/* More Console dump: 
Stream : StreamInfo(output_fields:[id, ack-val], direct:false)
Stream : StreamInfo(output_fields:[clickedType, count], direct:false)
Stream : StreamInfo(output_fields:[id], direct:false)
Stream : StreamInfo(output_fields:[task-info, data-points], direct:false)
Stream : StreamInfo(output_fields:[event], direct:false)
*/

我不知道如何继续,阅读从定义为BaseBasicBolt的{​​{1}}发出的实际信息

通过带有nimbus客户端的螺栓从发射的元组中获取值的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你想得到一个由螺栓发出的元组?如果要执行此操作,则需要定义第二个螺栓并将其连接到第一个螺栓:

TopologyBuilder b = new TopologyBuilder();
b.addSpout(...);
b.addBolt("determineClickType", new MyBolt());
b.addBolt("receiver", new MyReceiverBolt()).shuffleGrouping("determineClickType");

名称为#34;接收器&#34;现在将从名为&#34;确定ClickType&#34;。

的螺栓中获取输出元组