storm实时排序TopN怎么使用

storm实时排序TopN怎么使用

本篇内容介绍了“storm实时排序TopN怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

阅读背景:1 您需要了解TOP 使用的场景

2 您需要了解当前的TOPN 处理,和定时区间处理的区别

看代码说话

packagecom.cc.storm;importcom.cc.storm.bolt.MergeBolt;importcom.cc.storm.bolt.RankBolt;importcom.cc.storm.bolt.RollingAllCountBolt;importcom.cc.storm.bolt.RollingCountBolt;importcom.cc.storm.spout.RandomEmitSpout;importcom.cc.storm.spout.RedisPubSubSpout;importbacktype.storm.Config;importbacktype.storm.LocalCluster;importbacktype.storm.StormSubmitter;importbacktype.storm.generated.AlreadyAliveException;importbacktype.storm.generated.InvalidTopologyException;importbacktype.storm.topology.TopologyBuilder;importbacktype.storm.tuple.Fields;/***ToPN是一种常见模式,是对流式数据进行“StreamingtopN”的计算:*比如要计算的是最近一段时间内的热门话题,热门点击图片,热门商品浏览,热门商品购买**既然敢要实时的处理,【】【】【】【】【】[]【】【】【】【】【】[]【】【】【】【】【】[]**@authorYinShuai*/publicclassTOP10{publicstaticvoidmain(String[]args)throwsAlreadyAliveException,InvalidTopologyException,InterruptedException{finalintTOP_N=10;finalinttime=1;TopologyBuilderbuilder=newTopologyBuilder();builder.setSpout("$datasource$",newRandomEmitSpout(),1);builder.setBolt("$count$",newRollingCountBolt(3,time),1).fieldsGrouping("$datasource$",newFields("merchandiseIDS"));builder.setBolt("$rank$",newRankBolt(TOP_N),2).fieldsGrouping("$count$",newFields("merchandiseID"));builder.setBolt("$merge$",newMergeBolt(TOP_N)).globalGrouping("$rank$");Configconf=newConfig();conf.setDebug(false);conf.setNumWorkers(2);conf.setMaxSpoutPending(5000);LocalClustercluster=newLocalCluster();cluster.submitTopology("Getting-Started-Toplogie",conf,builder.createTopology());Thread.sleep(5000);}}

整个处理的流程如图:

“storm实时排序TopN怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!

发布于 2021-12-23 21:21:35
收藏
分享
海报
0 条评论
84
上一篇:Storm怎么写一个爬虫 下一篇:手机解压缩软件介绍(rar解压缩工具)
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码