博客公告:(1)本博客所有博客文章搬迁至《博客虫》http://www.blogchong.com/
(2)文章对应的源码下载链接参考博客虫网站首页的“代码GIT”直通车;
(3)更多的相关文章更新,以及代码等,请关注博客虫网站,网站中有技术Q群,以及代码共享链接。
该文档为实实在在的原创文档,转载请注明:
http://blog.sina.com.cn/s/blog_8c243ea30101iwim.html
1 文档说明
该文档为storm模拟项目第三份文档,第一份文档简单的介绍了模拟项目的设计,第二份文档为关键代码详解,这份文档则是示例运行的文档,从源代码打包到配置文件配置,lib文件导入,及任务提交,最后到处理数据输出到mysql中,这一整个流程。
关于该部分代码可以到博客中留言获取,或者是加入191321336扣扣群获取。
2 示例说明
2.1 数据源
图2.1 源数据
数据源形如以上截图,共有五个字段,字段解释则不一一说明,详见文档一。以上形式数据作为数据源。
2.2 过滤规则
图2.2 monitorBolt.xml过滤配置
设置如上过滤规则,及过滤符合以下规则的数据流:第一个字段正则匹配.*google.*,第二字段在200至2001的范围内,第五个字段符合常规模糊匹配,即字段值中包含ina几个字符。且以上三个字段逻辑关系为“AND”,即同时满足以上三个条件,数据才会被过滤出来。
2.3 数据存储
图2.3 mysqlBolt.xml存储配置
以上为mysql存储配置,mysql地址为192.168.2.240(在nimbus节点上安装有mysql),提前创建好storm数据库,在该库中创建表monitor。
3 详细步骤
3.1 配置文件
图3.1-1 配置文件路径
配置文件路径我写的是/root/hcy/jar/,将这两个xml文件放在supervisor节点的该目录下,程序运行时会去该路径查找。并且将数据源domian.log也放到该目录下。
具体配置配置方式,参考第二章中的图2.2及2.3
3.2 代码打包
图3.2 代码打包
使用eclipse中的file选项下的export选项,导出类型为Jar file。将生成的jar包放入nimbus节点下。
3.3 数据库准备
在mysql中创建出storm数据库,在该库中创建表monitor,如下:
图3.3-1 创建表monitor
图3.3-2 表描述
Ps:为省事我全部创建了char类型的哦。
注意:
必须将mysql配置成能够远程访问的。
如下:
图3.3-3 配置mysql
PS:我用如上方法(网上寻找到的)将mysql配置能够远程登录了,但是本地登录不了了,囧啊,有知道的朋友请不吝赐教。
3.4 环境准备
3.4.1 配置
关于storm.yaml配置如下:
图3.4.1 storm.yaml配置
3.4.2 启动集群
在三个节点上启动ZK,在nimbus上启动用命令storm nimbus&启动nimbus及用storm ui&命令启动UI监控页面,在supervisor上启动storm supervisor&。
在nimbus所在机器上启动mysql。
3.5 提交任务
图3.5-1 提交任务命令
我把jar包放在nimbus下/root/hcy/jar目录下。执行以上命令,使用监控页面监控任务状态。
图3.5-2 UI监控页面
3.6 输出查询
远程登录myslq:
图3.6-1 进入storm数据库
进行过滤结果查询:
图3.6-2 10条过滤数据查询结果
4 项目扩展
下一步计划改善spout接口,计划源数据从metaq(消息队列中读取)获取,写一个metaq与storm的接口。
有兴趣的朋友请继续关注我的博客http://blog.sina.com.cn/huangchongyuan。
我会将这个模拟项目一步一步的完善,初步计划如下:
1、布置metaq集群,写metaq与storm的接口;
2、实现线上更新(例如动态更改过滤规则);
3、部署hadoop集群,写hdfs与storm接口;
4、支持类Top N统计处理。