require 'red_storm' require 'examples/native/random_sentence_spout' require 'examples/native/split_sentence_bolt' require 'examples/native/word_count_bolt' module Examples class LocalWordCountTopology RedStorm::Configuration.topology_class = self def start(base_class_path, env) builder = TopologyBuilder.new builder.setSpout('RandomSentenceSpout', JRubySpout.new(base_class_path, "RedStorm::Examples::RandomSentenceSpout", []), 1) builder.setBolt('SplitSentenceBolt', JRubyBolt.new(base_class_path, "RedStorm::Examples::SplitSentenceBolt", []), 2).shuffleGrouping('RandomSentenceSpout') builder.setBolt('WordCountBolt', JRubyBolt.new(base_class_path, "RedStorm::Examples::WordCountBolt", []), 2).fieldsGrouping('SplitSentenceBolt', Fields.new("word")) conf = Backtype::Config.new conf.setDebug(true) conf.setMaxTaskParallelism(3) cluster = LocalCluster.new cluster.submitTopology("word_count", conf, builder.createTopology) sleep(5) cluster.shutdown end end end