Storm 核心概念

本文将带你了解Storm核心概念和术语,这也是学习Storm的基础。如果大家还不了解Storm,建议先去Storm官网了解相关的文档,或参考初识Storm一文。

核心概念包括:拓扑 (toplogy)、流 (stream)、元组 (tuple)、spout、bolt。

1. 拓扑 (toplogy)

相信大家在平常的学习或者工作中也接触过拓扑图,简单点说,拓扑图就是将多个结点用边直接连接起来,形成的简单线性图。如下图1所示的这些拓扑图。

图1 拓扑图

但是,Storm中的拓扑有一些不同之处,可以这样理解,storm中的每个结点代表一个简单的处理或者计算过程,每条边代表一个结点的处理结果并传递给下一个结点作为其输入,如下图2所示。
图2 Storm简单拓扑

Storm 拓扑就是这样一个计算图,结点代表一些独立的计算代表节点间的数据传递。Storm官网的首页的拓扑图更具有代表性,如下图所示。

Storm拓扑图

2. 元组 (tuple)

上面拓扑中提到,结点之间存在数据的传输,元组 (tuple)就是拓扑中结点之间传输数据的形式,它本身是一个有序的数值序列,其中每个值都存在一个命名。简单说,就是结点间的数据是以元组的形式发送和接收的,一个结点可以创建元组,然后发送至任意其他的结点(此操作是可选的),这个发送元组到任意结点的过程,称为元组发送。元组格式展示如下图3所示。

图3 元组形式

3. 流 (stream)

一个流是一个“无边界的元组序列”。换句话说就是,在拓扑中,一个拓扑可以包含任意数量的流,一个流呢又包含任意多个无边界的元组。在Storm中除了第一个结点是从数据源读取数据外,其他的每个结点可以接受一个或者多个流作为输入。前面也提到过,每个结点会计算或转换输入流中的元组,然后发射新的元组,作为输出流传递给其他结点,而这个输出流对于接收结点来说就是输入流。

复杂流

其实就是节点的输入和输出不只是一对一的存在,可以多个输入流,可以多个输出流,这个可以对照Storm拓扑图理解,那个就是一个复杂流。通常我们业务需求要处理的也是类似的复杂流,一个复杂流例子如图4。


图4 复杂流

4. spout

spout就是Strom中所谓的第一个结点(水龙头),它是拓扑的流数据源头,spout会从外部的数据源读取数据并且向拓扑中发射数据元组。spout可以监听包括消息队列,数据库或者其他的一些数据源,spout比较简单,没有对数据的处理操作,仅仅作为数据流源头,监听数据源,读取数据,然后向bolt结点发射元组。

5. bolt

bolt就是结点,除了spout以外的结点都是bolt。不同于spout,bolt可以接收输入流的元组,可以对元组进行计算或者转换操作(如过滤、聚合、连接等操作),以及它还负责发射新的元组做为其他bolt的输入流。

boltspout的区别已经弄明白了,那它们是如何工作的呢?
在一个拓扑中,通常会存在大量的bolt和多个spout,他们是并行运行的,从Storm拓扑图也不难看出。

6. 总结

至此,Storm 核心概念就都说完了,最后总结一下:

  • 首先每个拓扑包含多个结点和边;
  • 结点就代表spout或者bolt;
  • 边代表流,流是指元组流;
  • 一个元组是有序的数值列表,每个数值都赋予一个命名,类似键值对(key-value);
  • 一个数据流是在spout和bolt之间或bolt和bolt之间的无边界元组序列;
  • spout是拓扑中的数据源头(第一个结点),负责监听数据源和传递发射元组;
  • bolt是除spout外其他结点,负责接收spout或者其它bolt的输入元组流,对元组进行计算等操作,以及发射新的元组给其它bolt;
  • 一个拓扑中,通常会存在大量的bolt和多个spout,他们是并行运行的。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容