更新时间:2024-08-03 GMT+08:00

Storm样例程序开发思路

通过典型场景,您可以快速学习和掌握Storm拓扑的构造和Spout/Bolt开发过程。

场景说明

一个动态单词统计系统,数据源为持续生产随机文本的逻辑单元,业务处理流程如下:

  • 数据源持续不断地发送随机文本给文本拆分逻辑,如“apple orange apple”。
  • 单词拆分逻辑将数据源发送的每条文本按空格进行拆分,如“apple”,“orange”,“apple”,随后将每个单词逐一发给单词统计逻辑。
  • 单词统计逻辑每收到一个单词就进行加一操作,并将实时结果打印输出,如:
    • apple:1
    • orange:1
    • apple:2

功能分解

根据上述场景进行功能分解,如表1所示。

表1 在应用中开发的功能

序号

步骤

代码示例

1

创建一个Spout用来生成随机文本

请参见创建Storm Spout

2

创建一个Bolt用来将收到的随机文本拆分成一个个单词

请参见创建Storm Bolt

3

创建一个Blot用来统计收到的各单词次数

请参见创建Storm Bolt

4

创建topology

请参见创建Storm Topology

部分代码请参考创建Storm Spout创建Storm Bolt创建Storm Topology,完整代码请参考Storm-examples示例工程。