Storm的第一份作业
去年在公司做一些实时数据分析的程序,基本上依靠的是分布式缓存系统(像我们公司的tair或者使用MongoDB这样的kv数据库),他们具备的原子递增功能可以用来作实时的计数。这种方式要是遇到复杂的统计规则,那么设计所需的key就变得异常困难。还有个最大的缺点,一旦分布式缓存系统发生异常或者重启的时候,你的计数就完全不准确了。
很早开始关注storm了,本来想山寨一个。最近找了几个公司里比较关注这方面的牛人聊了一下,大家觉得现有开源的实时数据处理的方案中就是它最靠谱了。因此,我准备好好用用storm,做几个经典的实时数据分析案例出来。
刚开始接触storm,第一份作业准备做一个简单例子,先在本地模式下跑。
我们假定有个交易系统,需要做一个针对每个ip订单创建量做实时统计(不知道这个规则是不是太简化了)。
在介绍怎么做之前,我们先来了解一些storm的基本概念:
Topologies
直译过来是拓扑结构的意思。它是storm里面描述一个实时程序的单位,有点像Hadoop的MapReduce Job。但也很不像,一个topology一旦启动就会一直在哪里运行着(除非你主动把它停止),而MapReduce Job一次跑完就结束了。topology其实就是描述了一个由spouts和bolts组成并通过流分组(stream grouping)方式连接的拓扑图。如下图所示:
。。。。
详细内容请访问我的新博客地址:
相关推荐
枫叶上的雨露 2020-05-02
LandryBean 2020-03-12
一名java从业者 2020-01-09
weeniebear 2013-03-25
weeniebear 2014-05-28
sfqbluesky 2019-12-12
AbnerSunYH 2016-08-12
weeniebear 2016-08-11
Stereo 2016-07-27
芒果先生Mango 2018-05-31
dykun 2019-08-16
GimmeS 2016-10-11
benbendy 2016-09-30
Johnhao 2016-09-30
AbnerSunYH 2016-04-28
benbendy 2016-04-15