You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Tyson Norris <tn...@adobe.com> on 2014/03/30 18:18:33 UTC

spout parallelism hint of 1

Hi - 
In a separate thread I mentioned that my bolts stopped working when numWorkers > 1.

After lots of painful testing, I have set up a simple case based on a modified TestWordSpout and ExclamationBolt, and notice that when numworkers = 3, I get the following behavior:

(Note that my spout is the same as TestWordSpout, except that it emits to fields “rsid” and “word”, where rsid is random selection of “rsid1”, "rsid2”, “rsid3”) 

builder.setSpout("word", new TestRsidWordSpout(), 10);
builder.setBolt("exclaim1", new ExclamationBolt(), 3).fieldsGrouping("word", new Fields("rsid"));

-> I get expected bolt execution, where each rsid is processed in a separate worker, based on logging via ExclamationBolt


Now if I set the spout parallelism down to 1, things go off the rails:

builder.setSpout("word", new TestRsidWordSpout(), 1);
builder.setBolt("exclaim1", new ExclamationBolt(), 3).fieldsGrouping("word", new Fields("rsid"));

-> I do NOT get expected bolt execution, ONLY those tuples routed to the same worker where the spout executes are getting processed; the other tuples are lost, based on logs (no evidence of executing bolts in this case)


I need to add some tracing to verify that ALL tuples are getting processed in the first case (with spout parallelism =10), but at least all workers are able to process tuples in that case. 


If you have any ideas what is happening here, please let me know.

Thanks!
Tyson