Hentai 发表于 2016-12-9 10:16:54

请教大神 storm如何实现top n 统计?

我想统计在每分钟内,出现次数最多的10个ip

langke93 发表于 2016-12-9 16:59:32

这个用到storm的时间窗口

Hentai 发表于 2016-12-9 17:00:07

langke93 发表于 2016-12-9 16:59
这个用到storm的时间窗口

怎么实现呢

xuanxufeng 发表于 2016-12-9 18:03:56

Hentai 发表于 2016-12-9 17:00
怎么实现呢

这个需要一定的编程基础,关于逻辑实现可参考这个
从业务逻辑讲解Storm的滑动窗口
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20519


Tank_2000 发表于 2016-12-11 21:52:57

本帖最后由 Tank_2000 于 2016-12-11 22:10 编辑

topology.newDRPCStream("top", drpc) .each(new Fields("args"), new Split(“ ”), new Fields("time")) .parallelismHint(5) .stateQuery(myStates,new Fields("time"),new QueryPacketDB(),new Fields("srcip", "byt", "pkt")) .groupBy(new Fields("srcip")) .chainedAgg() .aggregate(new Fields("byt"), new count(), new Fields("yt")) .aggregate(new Fields("pkt"), new count(), new Fields("kt")) .chainEnd() .applyAssembly(new FirstN(10, "yt", true));


使用ITridentSpout, 将上面的分组代码,稍微调整按时间分 分组试试

hlmcm 发表于 2016-12-14 11:32:20

学习了
页: [1]
查看完整版本: 请教大神 storm如何实现top n 统计?