storm项目-流数据监控1《设计文档》


博客虫网站原创博文系列整理--http://blogchong.com 专注于前沿 IT 技术 Storm 项目:流数据监控 <1> ---流数据监控设计文档 作者:博客虫 时间:2014/11/22 文档摘要: 该文档为原创模拟项目:流数据监控<1>文档《流数据监控设计文档》,相继会给出流数据监 控<2>文档《流数据监控代码解析》及其他文档 相关描述:  其他相关文档请参考博客虫网站 http://www.blogchong.com/  有任何其他想法或者,可以到博客虫留言或者邮件 blogchong@163.com  部分源码文档参考博客虫原创博文,代码获取:https://code.csdn.net/blogchong  PDF 文档获取:百度网盘 http://pan.baidu.com/s/1hqePCqw  PDF 文档及相关资料下载请到百度文库、新浪微盘搜索  欢迎加入 storm-分布式-IT 技术交流群(191321336,群中有详细的资料),一起讨论技 术,一起分享代码,一起分享设计; 博客虫网站原创博文系列整理--http://blogchong.com 专注于前沿 IT 技术 0 目录 Storm 项目:流数据监控 <1> ........................................................................................................ 1 ---流数据监控设计文档 ................................................................................................................... 1 1 流数据监控设计概述 ................................................................................................................... 1 1.1 概述前言............................................................................................................................ 1 1.2 设计大体概述 .................................................................................................................... 1 1.2.1 数据流产生:Spout .................................................................................................. 1 1.2.2 处理数据:HandleBolt ........................................................................................... 1 1.2.3 数据持久化:LastingBolt ....................................................................................... 1 2 数据监控设计框架 ....................................................................................................................... 2 2.1 数据监控设计拓扑 ............................................................................................................ 2 2.2 数据流监控环境拓扑 ........................................................................................................ 2 3 数据监控详细设计 ....................................................................................................................... 3 3.1 源数据说明 ........................................................................................................................ 3 3.2 数据监控设计 .................................................................................................................... 3 3.3 数据 Mysql 处理 ................................................................................................................ 4 3.4 源码简介............................................................................................................................ 4 4 文档说明....................................................................................................................................... 5 博客虫网站原创博文系列整理--http://blogchong.com 专注于前沿 IT 技术 1 1 流数据监控设计概述 1.1 概述前言  之前跟大家说要给大家写一些 storm 实时处理的代码,本来打算周末写的,但周末去爬 香山了,所以…迟了几天(这些算是废话)。  网上有人贴出的关于 GPS 实时处理的代码,个人感觉其实时处理只是在速度这一属性 上进行上限处理有些简单了,所以想自己设计个项目,所以有了“流数据监控”这个模 拟项目。  目前这个模拟项目比较简单(高手眼中),但总体框架有了,我会一步一步完善,慢慢 会补充完整。 1.2 设计大体概述 1.2.1 数据流产生:Spout 数据流的产生目前使用的比较多的是:log 文件读取、从 mysql(或者是相关 db)中获取、 从消息中间件(如 metaq)中获取及使用 socket 从网络中获取。 补充: 在该项目中,由于我的 metaq 还没搭好,所以就直接采用读取 log 的方式作为源数据,往后 会给出 metaq 作为数据源的接口及 mysql 作为数据源的接口等。 1.2.2 处理数据:HandleBolt 这里的 HandleBolt 是宽泛的概念,指对数据进行处理的相关 Bolt,目前比较常见的处理方式 是数据过滤、数据添加、部分数据统计、数据监控等等。这些都是比较常见的数据实时处理 方式。 补充: 该项目中数据处理部分使用数据监控处理,及对数据流进行条件过滤,将部分符合条件的数 据筛选出来做进一步处理,达到条件数据监控的目的。目前该部分支持多种条件判断方式组 合,多个字段组合判断及多种逻辑判断方式。往后会进一步晚上。 1.2.3 数据持久化:LastingBolt LastingBolt 泛指数据在处理之后进行持久化操作的接口,常见的持久化操作接口是:直接打 印(这个貌似不算)、写入 file 中、写入 mysql(及其他 db)中、写入消息中间件(metaq) 供其他业务调用、使用 Socket 写入网络端口中等等。 补充: 该项目中暂时设计两个数据持久化 Bolt,一个是直接打印出来(比较直观),二是存入 mysql 中。其他方式接口会慢慢的给出。 博客虫网站原创博文系列整理--http://blogchong.com 专注于前沿 IT 技术 2 2 数据监控设计框架 2.1 数据监控设计拓扑 ReadLogSpout MonitorBolt MysqlBolt PrintBolt 图 2.1 数据监控设计拓扑 数据监控设计拓扑说明: ReadLogSpout: 该部分 spout 从 domain.log(稍后给出 log 说明)读取数据,每次读取一行记录,该数据为 域名出售 log,读取数据后交给 MonitorBolt 进行处理。 MonitorBolt: 该部分 Bolt 对数据进行解析,读取配置文件 MonitorBolt.xml 中的逻辑判断及相关过滤规则 等,进行数据过滤,将符合条件的数据发射到下一级(稍后有 Bolt 分析)。 MysqlBolt: 在 MonitorBolt 处理完数据之后将数据存入 mysql 的库表中,数据库相关配置从配置文件 MysqlBolt.xml 中读取。 PrintBolt: 将结果直接打印出来。 2.2 数据流监控环境拓扑 Supervisor: 192.168.2.241 Supervisor: 192.168.2.242 Nimbus/Mysql: 192.168.2.240 图 2.2 网络环境拓扑 拓扑说明: 该项目只搭建三个 storm 节点一个为 Nimbus 节点,两个 supervisor 节点,其中在 Nimbus 节 点中又安装有 mysql。 博客虫网站原创博文系列整理--http://blogchong.com 专注于前沿 IT 技术 3 3 数据监控详细设计 3.1 源数据说明 目前源数据从 domain.log 中读取,该 log 为人工构造,模拟域名拍卖的 log,其中有五个字 段,分别为 domain(域名)、value(售价)、time(申请年份)、validity(有效期)、seller(卖 家)。详细如下: 图 3.1 源数据说明 一行数据为一条记录,每条记录有 5 个属性。 3.2 数据监控设计 从 Monitor 的配置文件中说明数据监控的设计: 图 3.2 MonitorBolt.xml 截图 参数说明:  MatchLogic:条件间的逻辑关系,用于如下几个条件间的逻辑关系指明,其有“AND” 及“OR”两种逻辑关系设置。  MatchType:判断类型列表,该列表指明了某个字段用何种匹配算法进行判断,regular 为正则匹配、range 为范围匹配、routine0 为常规模糊匹配、routine1 为常规完全匹配。  MatchField:匹配字段列表,指明对哪几个字段进行判断。  FieldValue:对应的字段值。  如上配置说明:对字段 1/2/5 分别进行正则、范围及常规模糊匹配,字段 1 满足正则匹 配.*google.*,字段 2 满足从 200 到 2001,字段 5 满足模糊匹配 ina,只有三个条件同 时满足“AND”,该数据才会发射到下一级。 博客虫网站原创博文系列整理--http://blogchong.com 专注于前沿 IT 技术 4 3.3 数据 Mysql 处理 从 MysqlBolt.xml 中进行说明: 图 3.3 MyslqBolt.xml 截图 Myslq 数据存储处理指明 myslq 的 host,指明 database 及 from,使用 username 及 password 将数据存储已经创建好的 mysql 表中。 3.4 源码简介 图 3.4 源码树 源码简单说明:Storm 包中为总体运行的 Topology,Storm.base 目前只有 myslq 预处理的一 博客虫网站原创博文系列整理--http://blogchong.com 专注于前沿 IT 技术 5 个类,storm.bolt 为 bolt 处理类,包括 monitorbolt 及 printbolt,storm.spout 包中为 spout 源 数据接口,storm.source 为构造源数据的一个类(这个可以忽略),storm.xml 为配置文件读 取类,domain.log 为源数据,MonitorBolt.xml 及 MyslqBolt.xml 分别为配置文件。 4 文档说明 该文档是数据流监控的总体设计文档,详细的代码解析将会继续给出。该设计附有代码,需 要的请到博客中留下邮箱,我会发给你。
还剩6页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

gmmxx

贡献于2015-12-22

下载需要 3 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf