博客公告:
(1)本博客所有博客文章搬迁至《博客虫》http://www.blogchong.com/
(2)文章对应的源码下载链接参考博客虫网站首页的“代码GIT”直通车;
(3)更多的相关文章更新,以及代码等,请关注博客虫网站,网站中有技术Q群,以及代码共享链接。
1 文档说明
代码获取:https://code.csdn.net/blogchong/dataopttopology
2 代码结构说明
2.1 代码树
//共7个包,20个java文件
2.1 storm
该包下只有一个启动主类,即构造拓扑结构的地方。在这里,你可以用现有的spout以及bolt根据构造top的基本规则,构造出自己想要的数据处理流程top来。
2.2 storm.base
//包含了各种其他类所需要的基本类,公共类。
ConfCheck.java
定时检测配置文件是否发生了更改,是一个线程类,供所有有配置文件的组件调用,主要是一些spout以及bolt组件。
MacroDef.java
静态变量的宏定义类,供所有的类调用。
MetaMessageWrapper.java
MetaSpout的一个辅助类。
MysqlOpt.java
封装了一些mysql的基本操作,比如连接,数据插入,数据库关闭等基本操作,主要是供MysqlBolt调用。
StringScheme.java
MetaSpout输出规范化辅助类,主要是申明接入数据的编码。
2.3 storm.bolt
//包含了各种bolt处理类
MonitorBolt.java
数据过滤bolt,包含了普通匹配、正则匹配、范围匹配等数据过滤功能。
MysqlBolt.java
数据Mysql落地接口,将top处理的数据最终存入Mysql中。
PrintBolt.java
直接将数据打印输出。
2.4 storm.spout
//定义了各种数据接入的spout
MetaSpout.java
数据从Metaq(消息中间件)中接入。
ReadLogSpout.java
直接从本地读取Log,并且发布出去。
2.5 storm.xml
//从xml配置文件中读取配置文件
MonitorXml.java
从MonitorBolt.xml中读取配置信息。
MysqlXml.java
从MysqlBolt.xml中读取配置信息。
SpoutXml.java
从MetaSpout.xml中读取配置信息。
2.6 storm.source
GetSource.java
利用随机机制产生domain.log,即虚拟域名交易数据集,是一个主类,模拟构造最初始的数据集。
2.7 storm.helloworld
//storm的helloworld程序,即word count实例,有主类,是个单独的模块。
HelloWorldTopology.java
HelloWorld主类,启动类,注意wordcountbolt的分组方式,是以字段分组。
ReadFileSpout.java
读取数据spout,与ReadLogSpout相似。
WordNormalizerBolt.java
数据规范化类,将输入的domain记录拆分,并且只将域名拆分为三部分,例如www.XXX.com拆成www、XXX、com,此外包括seller四个词向后发布。
WordCountBolt.java
单词统计,利用HashMap的原理。
PrintWorldCountBolt.java
打印单词统计信息,更直观的看到统计结果。
3 项目总结
3.1 项目现状
Ø
Ø
Ø
Ø
Ø
Ø
3.2 项目发展
Ø
Ø
Ø
除非特别申明,博客虫文章都为原创,非商业用途转载请注明,作者、地址来源,商业用途请联系站长。
本文地址:http://www.blogchong.com/post/storm_monitor_code_push.html
若果你觉得blogchong的这篇技术文章对你有用,别忘了点赞支持,也可以留言支持,当然有其他问题也可以留言。
欢迎继续关注博客虫!!!