`
harry
  • 浏览: 184450 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Storm的第一份作业

阅读更多

去年在公司做一些实时数据分析的程序,基本上依靠的是分布式缓存系统(像我们公司的tair或者使用MongoDB这样的kv数据库),他们具备的原子递增功能可以用来作实时的计数。这种方式要是遇到复杂的统计规则,那么设计所需的key就变得异常困难。还有个最大的缺点,一旦分布式缓存系统发生异常或者重启的时候,你的计数就完全不准确了。

很早开始关注storm了,本来想山寨一个。最近找了几个公司里比较关注这方面的牛人聊了一下,大家觉得现有开源的实时数据处理的方案中就是它最靠谱了。因此,我准备好好用用storm,做几个经典的实时数据分析案例出来。

刚开始接触storm,第一份作业准备做一个简单例子,先在本地模式下跑。

我们假定有个交易系统,需要做一个针对每个ip订单创建量做实时统计(不知道这个规则是不是太简化了)。

在介绍怎么做之前,我们先来了解一些storm的基本概念:

Topologies

直译过来是拓扑结构的意思。它是storm里面描述一个实时程序的单位,有点像Hadoop的MapReduce Job。但也很不像,一个topology一旦启动就会一直在哪里运行着(除非你主动把它停止),而MapReduce Job一次跑完就结束了。topology其实就是描述了一个由spouts和bolts组成并通过流分组(stream grouping)方式连接的拓扑图。如下图所示:

。。。。

详细内容请访问我的新博客地址:

http://xiaofengmetis.com/?p=27

分享到:
评论
1 楼 hzxlb910 2013-07-19  
引用

详细内容请访问我的新博客地址:
http://xiaofengmetis.com/?p=27

能否把您这个例子的代码发给我学习一下,409235520@qq.com,谢谢。

相关推荐

Global site tag (gtag.js) - Google Analytics