Storm样例程序开发思路
通过典型场景,您可以快速学习和掌握Storm拓扑的构造和Spout/Bolt开发过程。
场景说明
一个动态单词统计系统,数据源为持续生产随机文本的逻辑单元,业务处理流程如下:
- 数据源持续不断地发送随机文本给文本拆分逻辑,如“apple orange apple”。
- 单词拆分逻辑将数据源发送的每条文本按空格进行拆分,如“apple”,“orange”,“apple”,随后将每个单词逐一发给单词统计逻辑。
- 单词统计逻辑每收到一个单词就进行加一操作,并将实时结果打印输出,如:
- apple:1
- orange:1
- apple:2
功能分解
根据上述场景进行功能分解,如表1所示。
序号 |
步骤 |
代码示例 |
---|---|---|
1 |
创建一个Spout用来生成随机文本 |
|
2 |
创建一个Bolt用来将收到的随机文本拆分成一个个单词 |
请参见创建Storm Bolt |
3 |
创建一个Blot用来统计收到的各单词次数 |
请参见创建Storm Bolt |
4 |
创建topology |
部分代码请参考创建Storm Spout,创建Storm Bolt,创建Storm Topology,完整代码请参考Storm-examples示例工程。