Trident wordCount例子解读

官方文档地址:http://storm.apache.org/documentation/Trident-tutorial.html

简介

这个手册,首先就给了WordCount的例子。WordCount就特么这么好理解么,接口文档上说明少的掉渣啊。吐槽完毕,例子主要分为两个步骤:1. 构建数据源;2. 构建拓扑。

1. 创造源数据
 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"));
spout.setCycle(true);

效果:产生一个源数据流。处理过程中至多可以被分成3个batch,batch的name是“sentence”。不停的将上面的4个句子循环形成数据流。

2. 构建Topology
TridentTopology topology = new TridentTopology();        
TridentState wordCounts =
     topology.newStream("spout1", spout)
       .each(new Fields("sentence"), new Split(), new Fields("word"))
       .groupBy(new Fields("word"))
       .persistentAggregate(new MemoryMapState.Factory(), new Count(), new Fields("count"))                
       .parallelismHint(6);

每行依次的效果:
1. 以spout为源创建流;
2. 遍历流中name为“sentence”的batch,作为Split函数的输入,输出name为“word”的tuple。
3. 对name为“world”的tuple做groupby操作;
4. 对groupby的结果,做Count操作,Count为内建聚合方法,结果存储在内存中,存为name为”count”的tuple。每个batch的计算结果再进行聚合(叠加)。
5. 并发度为6,也就是最多允许6个线程。即Executor的数量。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值