Storm项目:流数据监控1《设计文档…
博客公告:
(1)本博客全部博客文章搬迁至《博客虫》http://blogchong.com/
(2)文章相应的源代码下载链接參考博客虫站点首页的“代码GIT”。
(3)很多其它的相关文章更新,以及代码等。请关注博客虫站点,站点中有技术Q群,以及代码共享链接。
(4)该博客内容还会继续更新,只是会慢一些。
该文档为实实在在的原创文档,转载请注明作者及出处。
类型 |
具体 |
备注 |
² 该文档为原创模拟项目:流数据监控<1>文档《流数据监控设计文档》。相继会给出流数据监控<2>文档《流数据监控代码解析》及其它文档 ² 该部分有源代码(熬夜写出来的哦) CSDN中对应项目CODE链接:戳这里 |
相关描写叙述 |
² 有不论什么其它想法。能够邮件874450476@qq.com ² 文档及相关资料下载请到个人360云盘http://yunpan.cn/QGf2GDaRFpcDt及百度文库、新浪爱问搜索 ² 部分文档涉及到源代码,有须要的博客留言 ² 欢迎增加storm-分布式-IT技术交流群(191321336。群中有具体的资料)。一起讨论技术,一起分享代码。一起分享设计。 |
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写入网络port中等等。
补充:
该项目中临时设计两个数据持久化Bolt。一个是直接打印出来(比較直观),二是存入mysql中。其它方式接口会慢慢的给出。
2 数据监控设计框架
2.1 数据监控设计拓扑
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hvbmd5dWFuaHVhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图2.1 数据监控设计拓扑
数据监控设计拓扑说明:
ReadLogSpout:
该部分spout从domain.log(稍后给出log说明)读取数据。每次读取一行记录。该数据为域名出售log,读取数据后交给MonitorBolt进行处理。
MonitorBolt:
该部分Bolt对数据进行解析,读取配置文件MonitorBolt.xml中的逻辑推断及相关过滤规则等。进行数据过滤,将符合条件的数据发射到下一级(稍后有Bolt分析)。
MysqlBolt:
在MonitorBolt处理完数据之后将数据存入mysql的库表中。数据库相关配置从配置文件MysqlBolt.xml中读取。
PrintBolt:
将结果直接打印出来。
2.2 数据流监控环境拓扑
图2.2 网络环境拓扑
拓扑说明:
该项目仅仅搭建三个storm节点一个为Nimbus节点,两个supervisor节点,当中在Nimbus节点中又安装有mysql。
3 数据监控具体设计
3.1 源数据说明
眼下源数据从domain.log中读取。该log为人工构造,模拟域名拍卖的log,当中有五个字段。分别为domain(域名)、value(售价)、time(申请年份)、validity(有效期)、seller(卖家)。具体例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hvbmd5dWFuaHVhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图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”,该数据才会发射到下一级。
3.3 数据Mysql处理
从MysqlBolt.xml中进行说明:
图3.3 MyslqBolt.xml截图
Myslq数据存储处理指明myslq的host。指明database及from,使用username及password将数据存储已经创建好的mysql表中。
3.4 源代码简单介绍
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hvbmd5dWFuaHVhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
图3.4 源代码树
源代码简单说明:Storm包中为整体执行的Topology。Storm.base眼下仅仅有myslq预处理的一个类,storm.bolt为bolt处理类。包含monitorbolt及printbolt。storm.spout包中为spout源数据接口,storm.source为构造源数据的一个类(这个能够忽略),storm.xml为配置文件读取类,domain.log为源数据,MonitorBolt.xml及MyslqBolt.xml分别为配置文件。
4 文档说明
该文档是数据流监控的整体设计文档,具体的代码解析将会继续给出。该设计附有代码。须要的请到博客中留下邮箱,我会发给你。
Storm项目:流数据监控1《设计文档…的更多相关文章
- 有问必答项目 -数据库设计文档(ask-utf-8)
有问必答项目 -数据库设计文档(ask-utf-8) 表前缀的使用 早期租用公共的服务器 一个数据库,保存多个项目(问答.电子商务.医院),为了区分这些项目,使用前缀分割 ask_ ec_ hospi ...
- 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素
朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...
- 基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案 郑昀 基于杨海波的设计文档(转)
郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...
- Msmq设计文档(赋源代码)
Msmq设计文档(赋源代码) Msmq设计文档 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 文件标识: ECI-MSMQ v01 当前版本: 0.5 作 者: ...
- javaweb 课程设计编码和设计文档
企业办公软件设计文档 1引言 1.1编写目的 OA办公自动化系统详细设计是设计的第三个阶段,这个阶段的主要任务是在OA办公自动化系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模 ...
- Violet音乐社区设计文档
目录 Violet音乐社区设计文档 一.引言 1.1 编写目的 1.2 开发背景 二.用例图设计 2.1游客实例设计 2.2 管理员实例设计 2.3 普通用户实例设计 三.类图设计 3.1 歌手类 3 ...
- VM架构设计文档初稿v0.01
VM架构设计文档初稿v0.01 文档介绍 本文档是经过讨论,作为VM新架构设计开发中的重要依据.对该架构的整个系统的结构进行详实细致的描述.阐述框架结构,说明该架构所采取的设计策略和所有技术,并对相关 ...
- DDD领域驱动设计 - 设计文档模板
设计文档模板: 系统背景和定位 业务需求描述 系统用例图 关键业务流程图 领域语言整理,主要是整理领域中的各种术语的定义,名词解释 领域划分(分析出子域.核心域.支撑域) 每个子域的领域模型设计(实体 ...
- Atitit.atiagent agent分销系统 代理系统 设计文档
Atitit.atiagent agent分销系统 代理系统 设计文档 1. 启动项目1 2. 首也2 3. 登录功能2 4. 用户中心2 5. 充值查询3 6. 授权下级代理4 7. 我的提成5 ...
随机推荐
- 九度oj 题目1100:最短路径
题目描述: N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离 输入: 第一行两个正整数N(2<=N<=100)M(M< ...
- Terracotta
Terracotta 3.2.1简介 (一) 博客分类: 企业应用面临的问题 Java&Socket 开源组件的应用 hibernatejava集群服务器EhcacheQuartzTerrac ...
- [UOJ#122][NOI2013]树的计数
[UOJ#122][NOI2013]树的计数 试题描述 我们知道一棵有根树可以进行深度优先遍历(DFS)以及广度优先遍历(BFS)来生成这棵树的 DFS 序以及 BFS 序.两棵不同的树的 DFS 序 ...
- BZOJ 3926 [Zjoi2015]诸神眷顾的幻想乡 ——广义后缀自动机
神奇的性质,叶子节点不超过20个. 然后把这些节点提出来构成一颗新树,那么这些树恰好包含了所有的情况. 所以直接广义后缀自动机. 然后统计本质不同的字符串就很简单显然了. #include <c ...
- HDU 1565 方格取数(1) ——插头DP
[题目分析] 其实直接状压就可以了. 但是有点闲,又写了一个可读性极差,智商低下,很(gou)好(pi)的代码 [代码] #include <cstdio> #include <cs ...
- BZOJ 3569 DZY Loves Chinese II ——线性基
[题目分析] 腊鸡题目卡题面. 大概的意思就是给一张无向图,每次删掉其中一些边,问是否联通. 首先想到的是Bitset,可以做到n^2/64.显然过不了. 然而这是lyd在给我们讲线性基的时候的一道题 ...
- 基于注解的 Spring MVC(上)
什么是Spring MVC Spring MVC框架是一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC ...
- java.util.ResourceBundle 用法小介
java中读取配置文件的信息可以采用properties这个类,但是当遇到国际化问题的时候还是不好解决,因而还是最好使用 ResourceBundle这个类,其实ResourceBundle本质上和P ...
- uva 12304点与直线与圆之间的关系
Problem E 2D Geometry 110 in 1! This is a collection of 110 (in binary) 2D geometry problems. Circum ...
- POJ2486 Apple Tree
Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %lld & %llu Description Wshxzt is ...