Strom的简单实现
Spout的实现
- 对文件的改变进行分开的监听,并监视目录下有无新日志文件添加。
- 在数据得到了字段的说明后,将其转换成tuple。
- 声明Spout和Bolt之间的分组,并决定tuple发送给Bolt的途径。
Spout中open、nextTuple和delcareOutputFields方法的逻辑:
declareOutputFileds()决定了tuple发射的格式,这样的话Bolt就可以用类似的方法将tuple译码。Spout持续对日志文件的数据的变更进行监听,一旦有添加Spout就会进行读入并且发送给Bolt进行处理。
Bolt的实现
Spout的输出结果将给予Bolt进行更深一步的处理。
:
一旦Spout和Bolt准备就绪(等待被执行),topology生成器将会建立topology并准备执行。下面就来看一下执行步骤。
在本地集群上运行和测试topology
- 通过TopologyBuilder建立topology。
- 使用Storm Submitter,将topology递交给集群。以topology的名字、配置和topology的对象作为参数。
- 提交topology。