(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
    分析訂單信息得到基於用戶的消費情況
    基於商品
    統計銷售額

處理流程

這裏寫圖片描述

  • KafaSpout

    負責從Kafka集羣讀取日誌信息

  • LogParserBolt

    將日誌記錄進行解析,抽取出所需的字段

    數據傳遞:
    這裏寫圖片描述

  • RequestUrlParserBolt

    抽取url,獲取orderInfo

    數據傳遞:
    這裏寫圖片描述

  • HttpReferParserBolt

    數據傳遞:

    這裏寫圖片描述

  • UserAgentParserBolt

    用戶瀏覽器和操作系統的信息

    數據傳遞:

    這裏寫圖片描述

  • CountUrlBolt

    負責統計url

    數據傳遞:

    這裏寫圖片描述

  • CountOutLinkBolt

    統計外部鏈接

    數據傳遞:

    這裏寫圖片描述

  • CountBrowserBolt

    負責統計瀏覽器

    數據傳遞:

    這裏寫圖片描述

  • CountSearchKeyBolt

    負責統計搜索關鍵字

    數據傳遞:

    這裏寫圖片描述

  • CountOsBolt

    負責統計用戶操作系統信息

    數據傳遞:

    這裏寫圖片描述

  • CountIpBolt

    統計用戶的ip

    數據傳遞:

    這裏寫圖片描述

  • SaveBolt

    負責數據最後的保存

    數據傳遞:

    這裏寫圖片描述

    優化

上面有多個負責統計的CountXXXBolt,現在設計一個通用的CountKipBolt

這裏寫圖片描述

即最後的流程如下:

這裏寫圖片描述

發佈了49 篇原創文章 · 獲贊 34 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章