Storm WordCount 代码
来源:互联网 发布:程序员需要什么学历 编辑:程序博客网 时间:2024/06/05 02:46
WordCountTopologMain
package top.itning.storm;import org.apache.storm.Config;import org.apache.storm.LocalCluster;import org.apache.storm.topology.TopologyBuilder;import org.apache.storm.tuple.Fields;/*** * * @author : ning * @version : 1.0.0 * @date : 2017/11/12 **/public class WordCountTopologMain { public static void main(String[] args) { TopologyBuilder topologyBuilder = new TopologyBuilder(); topologyBuilder.setSpout("mySpout", new MySpout(), 2); topologyBuilder.setBolt("mybolt1", new MySplitBolt(), 2).shuffleGrouping("mySpout"); topologyBuilder.setBolt("mybolt2", new MyCountBolt(), 4).fieldsGrouping("mybolt1", new Fields("word")); Config config = new Config(); config.setNumWorkers(2); // StormSubmitter.submitTopology("mywordcount",config,topologyBuilder.createTopology()); LocalCluster localCluster = new LocalCluster(); localCluster.submitTopology("mywordcount", config, topologyBuilder.createTopology()); }}
MySpout
package top.itning.storm;import org.apache.storm.spout.SpoutOutputCollector;import org.apache.storm.task.TopologyContext;import org.apache.storm.topology.OutputFieldsDeclarer;import org.apache.storm.topology.base.BaseRichSpout;import org.apache.storm.tuple.Fields;import org.apache.storm.tuple.Values;import java.util.Map;/*** * * @author : ning * @version : 1.0.0 * @date : 2017/11/12 **/public class MySpout extends BaseRichSpout { private SpoutOutputCollector collector; @Override public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) { this.collector = collector; } @Override public void nextTuple() { collector.emit(new Values("i am lilei love hanmeimei")); } @Override public void declareOutputFields(OutputFieldsDeclarer declarer) { declarer.declare(new Fields("love")); }}
MySplitBolt
package top.itning.storm;import org.apache.storm.task.OutputCollector;import org.apache.storm.task.TopologyContext;import org.apache.storm.topology.OutputFieldsDeclarer;import org.apache.storm.topology.base.BaseRichBolt;import org.apache.storm.tuple.Fields;import org.apache.storm.tuple.Tuple;import org.apache.storm.tuple.Values;import java.util.Map;/*** * * @author : ning * @version : 1.0.0 * @date : 2017/11/12 **/public class MySplitBolt extends BaseRichBolt { private OutputCollector collector; @Override public void prepare(Map stormConf, TopologyContext context, OutputCollector collector) { this.collector = collector; } @Override public void execute(Tuple input) { String line = input.getString(0); String[] arrWords = line.split(" "); for (String word : arrWords) { collector.emit(new Values(word, 1)); } // collector.ack(input); } @Override public void declareOutputFields(OutputFieldsDeclarer declarer) { declarer.declare(new Fields("word","num")); }}
MyCountBolt
package top.itning.storm;import org.apache.storm.task.OutputCollector;import org.apache.storm.task.TopologyContext;import org.apache.storm.topology.OutputFieldsDeclarer;import org.apache.storm.topology.base.BaseRichBolt;import org.apache.storm.tuple.Tuple;import java.util.HashMap;import java.util.Map;/*** * * @author : ning * @version : 1.0.0 * @date : 2017/11/12 **/public class MyCountBolt extends BaseRichBolt { private Map<String, Integer> map = new HashMap<String, Integer>(); @Override public void prepare(Map stormConf, TopologyContext context, OutputCollector collector) { } @Override public void execute(Tuple input) { String word = input.getString(0); Integer num = input.getInteger(1); System.out.println(Thread.currentThread().getId() + " word:" + word); if (map.containsKey(word)) { Integer count = map.get(word); map.put(word, count + num); } else { map.put(word, num); } System.out.println("count:" + map); } @Override public void declareOutputFields(OutputFieldsDeclarer declarer) { }}
阅读全文
0 0
- Storm WordCount 代码
- 第一个storm代码-wordcount-本地模式
- Storm的wordcount代码编写与分析
- storm入门简介及WordCount代码解析(一)
- storm运行wordcount例子
- storm wordcount 运
- storm wordcount实例
- Storm实战之WordCount
- Storm实战之WordCount
- Storm实战之WordCount
- Storm实战之WordCount
- 基于storm的wordCount
- Storm实战之WordCount
- Storm之WordCount
- 【Storm初探】wordcount demo
- storm框架跑wordcount
- storm之wordCount
- WordCount代码
- 菜鸟学习数据结构算法之路之折半搜索法
- 设置vsftp
- Ubantu16.04配置Matcaffe
- python中使用正则
- HDU1213并查集解题报告
- Storm WordCount 代码
- halcon模板匹配
- SpringMVC基本原理
- 数据中心网络拥塞控制分析之DX
- 排序算法之选择排序--Java语言
- scikit-learn ubuntu安装
- vue学习第23天,抽取模块 mock express
- Mysql搜索引擎 MyISAM 和 InnOB
- echarts中series为“graph”,如何控制node可视化大小