It looks like you need to move the timer to the prepare method. That thread is running in JVM you used to sumbit to the cluster.
Moving it to prepare will set it up in the worker. From: Martin Illecker [mailto:[email protected]] Sent: Wednesday, October 29, 2014 11:51 AM To: [email protected] Subject: Fwd: TimerTask in ReportWordCountBolt Hello! I have tried to reimplement the WordCount example [1]. Since the cleanup method is not guaranteed and not executed on a cluster [2], I tried to use a TimerTask which should print out the wordcount stats. But the inner class implementation of the TimerTask [3] is not able to see the updated HashMap values from the execute method. The output of the TimerTask looks as follows: storm jar WordCount.jar at.illecker.storm.examples.wordcount.WordCountTopology 253 [Timer-0] INFO at.illecker.storm.examples.wordcount.ReportWordCountBolt - WordCounts: 0 458 [main] INFO backtype.storm.StormSubmitter - Jar not uploaded to master yet. Submitting jar... 462 [main] INFO backtype.storm.StormSubmitter - Uploading topology jar WordCount.jar to assigned location: storm-local/nimbus/inbox/stormjar-e74db7f7-098b-4757-b11d-55f3ed6d0d86.jar 468 [main] INFO backtype.storm.StormSubmitter - Successfully uploaded topology jar to assigned location: storm-local/nimbus/inbox/stormjar-e74db7f7-098b-4757-b11d-55f3ed6d0d86.jar 468 [main] INFO backtype.storm.StormSubmitter - Submitting topology word-count-topology in distributed mode with conf {} 500 [main] INFO backtype.storm.StormSubmitter - Finished submitting topology: word-count-topology To kill the topology run: storm kill word-count-topology 1251 [Timer-0] INFO at.illecker.storm.examples.wordcount.ReportWordCountBolt - WordCounts: 0 2255 [Timer-0] INFO at.illecker.storm.examples.wordcount.ReportWordCountBolt - WordCounts: 0 3259 [Timer-0] INFO at.illecker.storm.examples.wordcount.ReportWordCountBolt - WordCounts: 0 4263 [Timer-0] INFO at.illecker.storm.examples.wordcount.ReportWordCountBolt - WordCounts: 0 5265 [Timer-0] INFO at.illecker.storm.examples.wordcount.ReportWordCountBolt - WordCounts: 0 6267 [Timer-0] INFO at.illecker.storm.examples.wordcount.ReportWordCountBolt - WordCounts: 0 I'm sure the tuples are added into the HashMap but the TimerTask thread does not see it. How can I solve this under Storm? (e.g., a monitoring thread which prints out statistics within a single bolt with globalGrouping) Thanks for your help! Martin [1] https://github.com/millecker/storm-apps/tree/master/wordcount [2] https://groups.google.com/forum/#!topic/storm-user/GntJmOZZn4M [3] https://github.com/millecker/storm-apps/blob/master/wordcount/src/at/illecker/storm/examples/wordcount/ReportWordCountBolt.java#L68-83 [4] https://github.com/millecker/storm-apps/blob/master/wordcount/src/at/illecker/storm/examples/wordcount/ReportWordCountBolt.java#L63 $ git clone https://github.com/millecker/storm-apps.git $ cd storm-apps/wordcount/ $ ant run-cpu
