(2)Storm实时日志分析实战--Topology的设计

需求

日志数据样例:

215.187.202.215 - - [1481945172991] “GET/IBEIfeng.gif?order_id=1&orderTime=1481945172991&memberId=1234568970080798&productInfos=10009-2703.88-B-1|10001-2494.47-D-2|10003-2561.05-A-1&orderAmt=10253.87 HTTP/1.1” 200 0 “-” “Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko)

字段:

变量名 对应数据
ip 用户ip
serverTime 服务器实际
requestUrl 请求地址
httpRefer 映射信息
userAgent 用户信息
orderInfo 订单信息

需求:

  1. 统计分析 每天、每小时、每分钟 各个IP访问量
  2. 统计 每天、每小时、每分钟 被访问的url 的次数
  3. 统计 外链数
  4. 解析userAgent获取得到 浏览器信息 操作系统信息,统计统计 每天、每小时、每分钟访问客户使用浏览器或者操作系统情况
  5. orderInfo order_id=2&orderTime=1481945173124&memberId=4958868887900989&productInfos=10001-217.40-B-1|10003-2561.05-A-1&orderAmt=2778.44
    分析订单信息得到基于用户的消费情况
    基于商品
    统计销售额

处理流程

(2)Storm实时日志分析实战--Topology的设计_第1张图片

  • KafaSpout

    负责从Kafka集群读取日志信息

  • LogParserBolt

    将日志记录进行解析,抽取出所需的字段

    数据传递:
    这里写图片描述

  • RequestUrlParserBolt

    抽取url,获取orderInfo

    数据传递:
    这里写图片描述

  • HttpReferParserBolt

    数据传递:

    (2)Storm实时日志分析实战--Topology的设计_第2张图片

  • UserAgentParserBolt

    用户浏览器和操作系统的信息

    数据传递:

    (2)Storm实时日志分析实战--Topology的设计_第3张图片

  • CountUrlBolt

    负责统计url

    数据传递:

    这里写图片描述

  • CountOutLinkBolt

    统计外部链接

    数据传递:

    这里写图片描述

  • CountBrowserBolt

    负责统计浏览器

    数据传递:

    这里写图片描述

  • CountSearchKeyBolt

    负责统计搜索关键字

    数据传递:

    这里写图片描述

  • CountOsBolt

    负责统计用户操作系统信息

    数据传递:

    这里写图片描述

  • CountIpBolt

    统计用户的ip

    数据传递:

    这里写图片描述

  • SaveBolt

    负责数据最后的保存

    数据传递:

    这里写图片描述

    优化

上面有多个负责统计的CountXXXBolt,现在设计一个通用的CountKipBolt

(2)Storm实时日志分析实战--Topology的设计_第4张图片

即最后的流程如下:

(2)Storm实时日志分析实战--Topology的设计_第5张图片

你可能感兴趣的:(Storm)