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


Reply via email to