博客公告:

(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《设计文档…的更多相关文章

  1. 有问必答项目 -数据库设计文档(ask-utf-8)

    有问必答项目 -数据库设计文档(ask-utf-8) 表前缀的使用 早期租用公共的服务器 一个数据库,保存多个项目(问答.电子商务.医院),为了区分这些项目,使用前缀分割 ask_ ec_ hospi ...

  2. 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

    朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...

  3. 基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案 郑昀 基于杨海波的设计文档(转)

    郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...

  4. Msmq设计文档(赋源代码)

    Msmq设计文档(赋源代码)   Msmq设计文档     文件状态: [√] 草稿 [  ] 正式发布 [  ] 正在修改 文件标识: ECI-MSMQ v01 当前版本: 0.5 作    者: ...

  5. javaweb 课程设计编码和设计文档

    企业办公软件设计文档 1引言 1.1编写目的 OA办公自动化系统详细设计是设计的第三个阶段,这个阶段的主要任务是在OA办公自动化系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模 ...

  6. Violet音乐社区设计文档

    目录 Violet音乐社区设计文档 一.引言 1.1 编写目的 1.2 开发背景 二.用例图设计 2.1游客实例设计 2.2 管理员实例设计 2.3 普通用户实例设计 三.类图设计 3.1 歌手类 3 ...

  7. VM架构设计文档初稿v0.01

    VM架构设计文档初稿v0.01 文档介绍 本文档是经过讨论,作为VM新架构设计开发中的重要依据.对该架构的整个系统的结构进行详实细致的描述.阐述框架结构,说明该架构所采取的设计策略和所有技术,并对相关 ...

  8. DDD领域驱动设计 - 设计文档模板

    设计文档模板: 系统背景和定位 业务需求描述 系统用例图 关键业务流程图 领域语言整理,主要是整理领域中的各种术语的定义,名词解释 领域划分(分析出子域.核心域.支撑域) 每个子域的领域模型设计(实体 ...

  9. Atitit.atiagent  agent分销系统 代理系统 设计文档

    Atitit.atiagent  agent分销系统 代理系统 设计文档 1. 启动项目1 2. 首也2 3. 登录功能2 4. 用户中心2 5. 充值查询3 6. 授权下级代理4 7. 我的提成5 ...

随机推荐

  1. Cookie窃取实验

    文章:IE/FIREFOX/CHROME等浏览器保存COOKIE的位置 Chrome的Cookie数据位于:%LOCALAPPDATA%\Google\Chrome\User Data\Default ...

  2. vscode & code snippets

    code snippets vscode & code snippets https://github.com/xgqfrms/FEIQA/tree/master/000-xyz/templa ...

  3. MAC生成公钥私钥

    前言 需要开发者在本地上使用openssl来生成私钥和公钥 由于mac 自带openssl工具,所以不用像windows那样要下载安装openssl工具 步骤 1.创建一个文件夹,终端进入该文件夹 c ...

  4. 有大神告诉我为什么pymysql导入失败

    import json import requests import pymysql url = 'https://xueqiu.com/v4/statuses/public_timeline_by_ ...

  5. 常州模拟赛d2t2 小X的密室

    题目描述 密室中有 N 个房间,初始时,小 X 在 1 号房间,而出口在 N 号房间. 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会 单向地 创造一条从房间 X 到房间 Y 的通道.另 ...

  6. 解决centos7中ens33中不显示IP等问题

    在虚拟机中安装centos7,输入ifconfig显示command not found.在sbin目录中发现没有ifconfig文件,这是因为centos7已经不使用 ifconfig命令了,已经用 ...

  7. Python入门--14--字典

    基础知识: 0.python对值没有要求,但对key有些要求,必须是非变量(变量,列表,字典) 1.在列表中使用成员资格操作符,和在字典中使用成员资格操作符,后者会更快 2.fromkeys这个函数会 ...

  8. H5 折线图插件

    一.可以使用Highcharts,参考网址:https://api.hcharts.cn/highcharts: 二.可以使用Echarts,参考网址:http://echarts.baidu.com ...

  9. Can't connect to X11 window server using 'localhost:0.0' 的解决

    Can't connect to X11 window server using 'localhost:0.0' 的解决 http://lufei-99999.blog.163.com/blog/st ...

  10. android 服务

    1.创建服务 Exported:是否允许除了当前程序之外的其他程序访问这个服务 Enable:是否启用这个服务 点击完成后自动生成 import android.app.Service; import ...