Storm官方提供的trident单词计数的例子
上代码:
 public class TridentWordCount {
   public static class Split extends BaseFunction {
     @Override
     public void execute(TridentTuple tuple, TridentCollector collector) {
       String sentence = tuple.getString(0);
       for (String word : sentence.split(" ")) {
         collector.emit(new Values(word));
       }
     }
   }
   public static StormTopology buildTopology(LocalDRPC drpc) {
     //这个是一个batch Spout  一次发3个..
     FixedBatchSpout spout = new FixedBatchSpout(new Fields("sentence"), 3, new Values("the cow jumped over the moon"),
         new Values("the man went to the store and bought some candy"), new Values("four score and seven years ago"),
         new Values("how many apples can you eat"), new Values("to be or not to be the person"));
     spout.setCycle(true);//Spout是否循环发送
     TridentTopology topology = new TridentTopology();
     TridentState wordCounts = topology.newStream("spout1", spout).parallelismHint(16)//类似于setSpout
             .each(new Fields("sentence"),new Split(), new Fields("word"))//setbolt
             .groupBy(new Fields("word")).persistentAggregate(new MemoryMapState.Factory(),new Count(), new Fields("count")).parallelismHint(16);
     topology.newDRPCStream("words", drpc).each(new Fields("args"), new Split(), new Fields("word")).groupBy(new Fields(
         "word")).stateQuery(wordCounts, new Fields("word"), new MapGet(), new Fields("count")).each(new Fields("count"),
         new FilterNull()).aggregate(new Fields("count"), new Sum(), new Fields("sum"));
     return topology.build();
   }
   public static void main(String[] args) throws Exception {
     Config conf = new Config();
     conf.setMaxSpoutPending(20);
     if (args.length == 0) {
       LocalDRPC drpc = new LocalDRPC();
       LocalCluster cluster = new LocalCluster();
       cluster.submitTopology("wordCounter", conf, buildTopology(drpc));
       for (int i = 0; i < 100; i++) {
         System.out.println("DRPC RESULT: " + drpc.execute("words", "cat the dog jumped"));
         Thread.sleep(1000);
       }
     }
     else {
       conf.setNumWorkers(3);
       StormSubmitter.submitTopologyWithProgressBar(args[0], conf, buildTopology(null));
     }
   }
 }
Storm官方提供的trident单词计数的例子的更多相关文章
- 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子
		一:自定义实现InputFormat *数据源来自于内存 *1.InputFormat是用于处理各种数据源的,下面是实现InputFormat,数据源是来自于内存. *1.1 在程序的job.setI ... 
- storm(5)-分布式单词计数例子
		例子需求: spout:向后端发送{"sentence":"my dog has fleas"}.一般要连数据源,此处简化写死了. 语句分割bolt(Split ... 
- Strom的trident单词计数代码
		/** * 单词计数 */ public class LocalTridentCount { public static class MyBatchSpout implements IBatchSpo ... 
- Storm实现单词计数
		package com.mengyao.storm; import java.io.File; import java.io.IOException; import java.util.Collect ... 
- 【Storm】storm安装、配置、使用以及Storm单词计数程序的实例分析
		前言:阅读笔记 storm和hadoop集群非常像.hadoop执行mr.storm执行topologies. mr和topologies最关键的不同点是:mr执行终于会结束,而topologies永 ... 
- MapReduce之单词计数
		最近在看google那篇经典的MapReduce论文,中文版可以参考孟岩推荐的 mapreduce 中文版 中文翻译 论文中提到,MapReduce的编程模型就是: 计算利用一个输入key/value ... 
- 2.Storm集群部署及单词统计案例
		1.集群部署的基本流程 2.集群部署的基础环境准备 3.Storm集群部署 4.Storm集群的进程及日志熟悉 5.Storm集群的常用操作命令 6.Storm源码下载及目录熟悉 7.Storm 单词 ... 
- 大数据【四】MapReduce(单词计数;二次排序;计数器;join;分布式缓存)
		前言: 根据前面的几篇博客学习,现在可以进行MapReduce学习了.本篇博客首先阐述了MapReduce的概念及使用原理,其次直接从五个实验中实践学习(单词计数,二次排序,计数器,join,分 ... 
- Storm集群部署及单词技术
		1. 集群部署的基本流程 集群部署的流程:下载安装包.解压安装包.修改配置文件.分发安装包.启动集群 注意: 所有的集群上都需要配置hosts vi /etc/hosts 192.168.239.1 ... 
随机推荐
- 关于Excel分析图插入到论文的问题
			为了保证插入到latex图片不失真,可将Excel中的图进行如下操作: 1.将Excel分析图另存为.pdf格式: 2.利用Adobe acrobat裁剪掉空白的部分,另存为.eps格式: 3.将ep ... 
- python 基础_列表的其他操作 4
			一.查找某个元素在数组中出现的次数 ,count的运用 a = ['a','b','c','c','c','a'] print(a.count('c')) 二.把一个元素插入到另一个元素的末尾,ext ... 
- kepware http接口 swift
			读取某变量的值 import Foundation let headers = [ "Connection": "keep-alive", "Cach ... 
- tlink平台数据转发 c# 控制台程序
			using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ... 
- python迭代器实例
			1. 迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退. 1.1 使用迭代 ... 
- U盘或者移动银盘退出时一直显示占用中问题解决--最粗暴解决方式
			问题描述: ---------------------------弹出 USB 大容量存储设备 时出问题---------------------------Windows 无法停用“通用卷”设备,原 ... 
- php支持连接sqlserver数据库
			php支持连接sqlserver数据库 1.软件配置 Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2数据库,wamp2.2中的php版本是5.3.10. ... 
- [Word]让字符重合显示
			某些时候需要让字符重合显示,比如您好二字,显示为: 需要用到word的Advance域,他可以让后面的文字上下左右移动一定的磅. 譬如上面你好的显示:word中域代码为: 意思是好字向left移动了2 ... 
- Java反射机制介绍
			1. 文档概述 Java反射是Java被视为动态(或准动态)语言的一个关键性质,Java反射机制容许程序在运行时加载.探知.使用编译期间完全未知的classes.换言之,Java可以加载一个运行时才得 ... 
- 【转】PowerDesigner快捷键
			一般快捷键 快捷键 说明 F4 打开检查模型窗口,检查模型 F5 如果图窗口内的图改变过大小,恢复为原有大小即正常大小 F6 放大图窗口内的图 F7 缩小图窗口内的图 F8 在图窗口内中查看全部图内容 ... 
