Storm 入门(四)—— Storm+Kafka的实时计算实践

本章将简单介绍关于Storm+Kafka的进行一个简单的实践,进行单词累计计算。

词累计计算是一个累计量的计算,实时计算一般要注意是累积量的计算,还是分时量的计算,这两者拥有明显的区别,比如计算网站的用户访问的UV数量,那么累计量就是一定时间如一天内的访问网站的不同的用户数量,第二天清零重新计算不需要在意前一天该用户是否访问过,但是分时计算就不仅需要考虑在当前时间间隔内是否是不同的用户,还要考虑到该用户是否在之前的时间里曾经访问过,访问过就不能计入当前时间间隔内。

首先是关于数据源的接收,关于如何搭建Kafka集群和Storm集群网上教程很多不在本文的讨论范围内。如下是一个kafka的消费spout

接收kafka消息的spout

该spout链接了kafka的集群,将offset放在末尾,开始读取kafka的数据,kafka的group和topic在初始化的时候传入,在Executor中奖不断的调用nextTuple传递日志信息。

然而此时的元组信息是比较粗糙的日志信息,需要将日志清洗一次,获取日志的数据结果。所以在进行词的累计量统计前需要将数据进行切割。如下bolt所示:


解析日志


在上图所示的bolt中解析了日志格式,将日志拆分,解析成json格式,并且取出了其中的key字段进行统计。

那么接下来这个bolt将用于统计词频,并且存入数据库

简单的词频统计

这是一个非常简单的词频统计计入数据库的操作,并且没有关注到数据统计因机器网络等原因出现故障的时候数据恢复容灾的情况,在实际的情况中需要考虑到数据出错的情况下数据重跑的可能性,不过作为一个简单的联系应该是够用了。

因为实时计算的kafka日志接受频率比较高数据库连接数是有限的,不可能频繁的进行数据库操作,因此将词频统计的工作移到内存来做,并且写一个如下的command发出数据库插入或更新指令。

数据操作指令spout

该spout中有两个timer的定时执行指令,我们只用到update指令,指令会在指令队列中存储,spout定时的往指令队列中插入指令,指令队列迅速将指令推送给所有的count的task,进行数据库更新。

写完了各个组件的逻辑需要用topology将各个指令串联起来,如下是一个简单的topology:


简单topology

这个topology非常简单,为topoogy分配了8个worker,为kafka的接受spout分配了8个executor线程,两个bolt都分配了4个executor线程,此外你还可以通过.setNumTasks的方式设置Task的数量。

在计算的词频的bolt中同时接受两类的数据,一个是上游bolt对日志清洗传递的数据,一类是发送指令的spout发出的指令,这也体现了Storm的组件间灵活处理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容