如今,我们看下敏感信息数据源组件SensitiveFileReader的具体实现,它负责大年夜办事器的指定目次下面,攫取疑似垃圾短信用户的垃圾短信内容文件,然后把每一行的数据,发送给下一?处理的Bolt(SensitiveFileAnalyzer),每个文件全部发送停止之后,在当前目次中,把原文件重定名成后缀bak的文件(当然,你可以从新建立一个备份目次,专门用来存储这种处理停止的文件),SensitiveFileReader的具体实现如下:
监控短信内容拆解分析器SensitiveFileAnalyzer,这个Bolt组件,接收到数据源SensitiveFileReader的数据之后,就按照膳绫擎定义的格局,对文件中每一行的内容进行解析,然后把解析完毕的内容,持续发送给下一?Bolt组件:SensitiveBatchBolt(敏感信息采集处理)。如今,我们来看下SensitiveFileAnalyzer这个Bolt组件的实现:
最后一个Bolt组件SensitiveBatchBolt(敏感信息采集处理)根据上游Bolt组件SensitiveFileAnalyzer发送过来的数据,然后跟营业规定的敏感关键字进行匹配,如不雅匹配成功,解释这个用户,就是我们要重点监控的用户,我们把它经由过程hibernate采集到MySQL数据库,同一治理。最后要解释的是,SensitiveBatchBolt组件还实现了一个监控的功能,就是按期打印出,我们已经采集到的敏感信息用户数据。如今给出SensitiveBatchBolt的实现:
因为是经由过程hibernate入库到MySQL,所以给出hibernate设备,起首是:hibernate.cfg.xml
对应的ORM映射设备文件rubbish-users.hbm.xml内容如下:
此外,我们还可以到对应的Supervisor办事器对应的Storm安装目次下面的logs目次,查看一下worker的工作日记,我们来看下敏感信息监控过滤的处理情况,截图如下:
最后,照样经由过程Spring把hibernate集成起来,数据库连接池用的是:DBCP。对应的Spring设备文件jdbc-hibernate-bean.xml的内容如下:
到此为止,我们已经完成了敏感信息及时`控的所有的Storm组件的开辟。如今,我们来完成Storm的拓扑(Topology),因为拓扑(Topology)又分为本地拓扑和分布式拓扑,是以封装了一个对象类StormRunner(拓扑履行器),对应的代码如下:
好了,如今我们把膳绫擎所有的Spouts/Bolts拼接成“拓扑”(Topology)构造,我们这里用的是分布式拓扑,来进行安排运行。具体的SensitiveTopology(敏感用户监控Storm拓扑)代码如下:
到此为止,所有的Storm组件已经开辟完毕!如今,我们把上述工程打成jar包,放到Storm集群中运行,具体可以到Nimbus对应的Storm安装目次下面的bin目次,输入:storm jar + {jar路径}。
起首,我先解释一下,该案例中Storm集群和Zookeeper集群的安排情况,如下图所示:
比如我这里是输入:storm jar /home/tj/install/SensitiveTopology.jar newlandframework.storm.topology.SensitiveTopology,然后,把疑似垃圾短信用户的垃圾短信内容文件放到指定的办事器下面的目次(/home/tj/data/591、/home/tj/data/592),最后打开刚才的Storm UI,不雅察义务的启动履行情况,这里如下图所示:
可以看到我们刚才提交的拓扑:SensitiveTopology已经成功提交到Storm集群琅绫擎了。这个时刻,你可以鼠标点击SensitiveTopology,然后会打开如下的一个Spouts/Bolts的监控界面,如下图所示:
推荐阅读
上周,微软、亚马逊、谷歌等国外科技巨擘齐发家报,在各家亮眼数据的背后,云计算营业成为一大年夜功臣。近些年来,在传统IT营业萎缩的情况下,云办事在各大年夜科技公司的营业和计谋中,扮演着越来越重>>>详细阅读
本文标题:基于Storm构建分布式实时处理应用初探
地址:http://www.17bianji.com/lsqh/38471.html
1/2 1