1. 程式人生 > >億量級流量的資料統計分析以及挖掘技術實戰(Spark And Storm)

億量級流量的資料統計分析以及挖掘技術實戰(Spark And Storm)

摘要:
本文,基於海量的全鏈路資料,簡明扼要的分享自己三年的時間內在實時資料統計分析以及資料探勘方面的經驗。

大資料
大資料的主要特徵為5V,如下圖所示:

這裡寫圖片描述

資料分析和挖掘整體框架圖
這裡寫圖片描述

資料分析和資料探勘平臺的整體框架如上圖所示,主要分為5層+1輔助系統,分別如下:
資料蒐集統一整合系統:主要負責蒐集整個供應鏈的資料資訊,包括各個渠道資料、使用者行為資料(網站瀏覽、點選、收藏、評價、加入購物車、刪除購物車、下單、取消訂單等)、平臺基礎資料、外部爬蟲資料、輿情繫統資料等,將其儲存落地到大資料倉庫中,統一管理。
大資料計算平臺:主要包括Spark叢集、Hadoop叢集、Storm叢集、Tensorflow叢集和登月演算法平臺等,以平臺的方式提供。
演算法和建模層:主要利用大資料倉庫中離線資料和Kafka儲存的實時資料,利用上述的計算平臺,選擇、改造以及創新設計出適應特定場景的模型。
資料服務介面層:利用HIVE或者SPARK等指令碼編寫資料分析演算法,按照topic進行建模統計資料,存入資料庫(MYSQL或者HBASE等),以JSF介面或者HTTP前端介面的形式提供給各個業務平臺。
業務平臺:各個業務系統,包括活動系統、店鋪系統、SEM等業務系統,作為消費端接入上述的資料服務,不用關係底層的演算法和實現原理。
反饋系統:主要負責蒐集訪客對推薦結果的反應情況,利用反饋資料調整模型,適應線上的實時變化。

資料分析整體流程圖

這裡寫圖片描述
資料分析整體流程圖如上圖所示,主要分為離線資料分析和實時資料分析兩類。實時資料分析,前端埋點(多種方式)實時上報使用者日誌資料到日誌儲存系統(主要為KAFKA)中,然後利用實時計算框架STORM或者SPARK STREAMING來統計計算各種資料(PV\UV\直接訂單\間接訂單\排行資訊\人員分佈\地域分佈資訊等),將其儲存到快取REDIS中,以便實時獲取。離線資料分析,主要編寫HIVE指令碼或者SPARK SQL等指令碼來統計計算各種TOPIC的長期離線資料,儲存到HBASE中,以便讀取。

資料分析產品-實時資料監控系統部分截圖

這裡寫圖片描述
資料分析實戰1-活動UV統計計算
場景描述:
十萬量級別的活動系統,幾億左右的活躍使用者,每個活動有幾十或者上百個坑位,每個坑位可以有多個換品,統計計算每個活動每個坑位的實時訪客數。
方案:利用基數估計演算法HyperLogLog Counting
HyperLogLog Counting(以下簡稱HLLC)的基本思想也是在LLC的基礎上做改進。
HLLC使用調和平均數替代幾何平均數;LLC取得是幾何平均數。由於幾何平均數對於離群值特別敏感,因此當存在離群值時,LLC的偏差就會很大。
調和平均數的定義如下:

這裡寫圖片描述
算術平均數:
這裡寫圖片描述

HLLC比LLC具有更高的精度。對於分桶數m為2^13(8k位元組)時,LLC的標準誤差為1.4%,而HLLC為1.1%。
優點:無論使用者多少,都佔用12K的大小儲存容量,方便後期擴充套件應用。

資料分析實戰2-注意力熱力圖

資料分析產品-注意力熱力圖部分截圖
注意力熱力圖,是熱力圖的一種,它將訪問者對頁面中不同的區域的關注程度以熱力圖的形式展現出來。注意力熱力圖以不同的顏色和顏色深淺代表不同大小的熱度值,熱度值大的區域的顏色會較深,熱度值小的區域的顏色會較淺。注意力熱力圖能夠非常直觀的展示出網頁的各個區域被關注的程度(在螢幕中被顯示的時間長短),能夠幫助網頁裝修人員優化頁面內容,提高轉化率。
對於每條日誌資料,根據停留時間t1計算整體熱度值totalvalue,計算公式如下:
這裡寫圖片描述

設定動態指數函式,計算公式如下:

這裡寫圖片描述
其中,這裡寫圖片描述為距離上邊緣1/4屏寬的縱座標;這裡寫圖片描述為距離下邊緣1/4屏寬的縱座標;x為上步驟的中間點集合中的點座標;y為點座標所對應的熱度值;這裡寫圖片描述為變化因子,隨著屏高變化,其計算公式如下:
這裡寫圖片描述

其中,這裡寫圖片描述為距離上邊緣1/4屏寬的縱座標;這裡寫圖片描述為當前屏的左上角的縱座標。
JSHOP資料探勘-個性化推薦的整體流程圖
這裡寫圖片描述

聚合頁猜你喜歡欄目和我的足跡欄目
個性化推薦-聚合頁,是部門在資料探勘領域的第一個產品,主要從品類和品牌兩個方面,以活動、店鋪和商品為推薦承載物品,進行實時和離線兩個時間維度的推薦。演算法模型部分,採用的是多模型融合,每個模型推薦部分物品,然後利用排序演算法(LR模型、GBDT模型)進行排序,挑選出排名靠前的部分商品,推薦給使用者。根據場景的不同將推薦分為判斷預測型、猜測預測型、關聯型、週期型等,每種場景採用不同的演算法進行推薦。根據時效性,將推薦系統分為離線型、近線型和實時型三條線路,根據場景的時效要求使用其中的一種或者多種。
判斷預測型,主要根據使用者最近一個月的瀏覽、點選、收藏、關注、購買等行為特徵,判斷該使用者接下3天內會不會購買該商品,主要使用的演算法為LR和GBDT演算法以及其變種。
猜測預測型,主要根據使用者以往的行為(包括瀏覽、點選、收藏、關注、購買),為使用者和所有互動的商品進行打分(代表喜歡程度或者其他意義,分值越大代表意義越深),然後在未互動的商品中預測出可能會購買或者點選的商品列表,主要使用的演算法有item-cf、user-cf和ALS模型以及其變種。
關聯型,主要根據使用者同一天內的購買組合或者加入購物車的商品組合,來判斷使用者購買一個商品後會購買另外一個商品的可能性,主要使用的演算法有FP演算法、Apriori演算法等。
週期型,主要針對一些週期型比較強的品類商品,使用者某個時間點購買了一個商品後,一定週期後還會購買該商品的可能性,主要使用的演算法有LSTM演算法等。

個性化推薦經驗總結:
ALS模型優化:
訓練過程資料量大,訓練較慢。可以增加並行度\聚類處理等。
識別過程的笛卡兒積問題,識別太慢。Spark mllib中預設採用的分塊大小可以適當調整。
Rank值為隱藏因子的個數,可以適當調整,提高模型的表達能力。
Ensemble模型:
• 引數級別的融合
• 模型級別的融合
1. 線性融合(加權、調製)
2. 級聯融合(過濾)
3. 演算法模型級別融合
離線和線上模型
比如LR模型和FTRL模型

如果,大家對海量資料下實時資料統計分析和挖掘技術感興趣的同學或者同事,可以一起共同探討。

參考文獻:
[1]. 古喜慶. 基於資料倉庫和資料探勘技術的客戶資料分析系統設計與實現[D]. 北京郵電大學, 2007.
[2].聊聊淘寶天貓個性化推薦技術演進史.
[3]. 輕鬆搞定實時分析及監控大屏(https://yq.aliyun.com/articles/69342).
[4]. Spark Streaming(上)–實時流計算Spark Streaming原理介紹.
[5]. 基於Storm的Nginx log實時監控系統

相關推薦

量級流量資料統計分析以及挖掘技術實戰(Spark And Storm)

摘要: 本文,基於海量的全鏈路資料,簡明扼要的分享自己三年的時間內在實時資料統計分析以及資料探勘方面的經驗。 大資料 大資料的主要特徵為5V,如下圖所示: 資料分析和挖掘整體框架圖 資料分析和資料探勘平臺的整體框架如上圖

app推廣渠道數據統計分析以及個性化安裝為什麽要選擇shareinstall?

IOS開發;Android開發;免填邀請 shareinstall是一個集成SDK工具,它能夠兼容Android和iOS,可以實現對app推廣過程中的訪問量、註冊量、活躍、安裝量以及留在網頁上的時間長短進行統計。同時能夠解決現實中遇到的免填邀請碼安裝、一鍵跳轉、用戶分享統計等等功能。那麽接下來我們系統的了解下

Python3資料分析挖掘建模實戰

第1章 課程介紹 本章首先介紹本課程是什麼,有什麼特色,能學習到什麼,內容如何安排,需要什麼基礎,是否適合學習這門課程等。然後對資料分析進行概述,讓大家對資料分析的含義和作用有一個整體的認知,讓大家對自己接下來要做的事情,有一個基本的概念與瞭解。… 第2章 資料

進階 | 一文讀懂大資料分析挖掘技術

隨著大資料時代的到來,在大資料觀念不斷提出的今天,加強資料大資料探勘及時的應用已成為大勢所趨。 什麼是大資料探勘? 資料探勘(Data Mining)是從大量的、不完全的、有噪聲的、模糊的、隨機的資料中提取隱含在其中的、人們事先不知道的、但又是潛在有用的資

【輕粒子】快應用資料統計分析平臺正式上線了!!!

【輕粒子】快應用資料統計分析平臺簡介 —專注於快應用的資料統計分析平臺 導語: 【輕粒子】快應用資料統計分析平臺是為快應用專門打造的一款資料統計分析產品,除提供日常

利用hive對微博資料統計分析案例

資料樣例: 欄位描述 總共19個欄位 beCommentWeiboId 是否評論 beForwardWeiboId 是否是轉發微博 catchTime 抓取時間 commentCount 評論次數 content 內容 createTime

資料統計分析時常用sql語句 (split , row_number , group by, max 等 )

統計分析及建表過程中通常會遇到這樣的需求,比如: 1. 統計以逗號分隔的標籤數,哪個最受歡迎,以及作為內容推薦的資料來源 2. 分組排序url的pv, 取topN的列表 3. 經常會有名字重複的url記錄,取pv最大的那條, 剩下的剔除 下面逐一對以上場景進行總結, 用的是 hivesql,希望

python資料分析挖掘專案實戰記錄

 python資料探勘專案實戰記錄 取自《Python資料分析與挖掘實戰》一書,整理各個專案中用到的資料處理方法: 資料預處理方法 建立模型方法 繪製圖形 對於分類問題:用模型分類;混淆矩陣及其繪圖;觀測其ROC曲線; 對於聚類問題:劃分類目數;獲取

【Flume】【原始碼分析】flume中事件Event的資料結構分析以及Event分流

前言 首先來看一下flume官網中對Event的定義 一行文字內容會被反序列化成一個event【序列化是將物件狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為物件。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料】,event的最大定義為2048位元

資料統計分析的歸一化問題

為什麼需要歸一化? 答: 1、我認為歸一化的表述並不太準確,按統計的一般說法,叫標準化。資料的標準化過程是減去均值併除以標準差。而歸一化僅包含除以標準差的意思或者類似做法。2、做標準化的原因是:減去均值等同於座標的移動,把原始資料點的重心移到和原點重合,這樣利於很多表達,比

python資料統計分析

1. 常用函式庫   scipy包中的stats模組和statsmodels包是python常用的資料分析工具,scipy.stats以前有一個models子模組,後來被移除了。這個模組被重寫併成為了現在獨立的statsmodels包。  scipy的stats包含一些比較基本的工具,比如:t檢驗,正態性檢

Python3數據分析挖掘建模實戰

Python3Python3數據分析與挖掘建模實戰網盤地址:https://pan.baidu.com/s/1lSjsPL1dskDbEsceNTvstg 密碼: wdts備用地址(騰訊微雲):https://share.weiyun.com/5AQkJBC 密碼:bj2veb 流程完整:從頭到尾經歷一次完整

Python3數據分析挖掘建模實戰視頻

特征工程 motion 數據分布 選擇 資料 hour 假設 人工 mean 第1章 課程介紹【贈送相關電子書+隨堂代碼】 本章首先介紹本課程是什麽,有什麽特色,能學習到什麽,內容如何安排,需要什麽基礎,是否適合學習這門課程等。然後對數據分析進行概述,讓大家對數據分析的含

級數量下日誌分析系統的技術架構選型

優劣勢 大數據應用 aci 是我 根據 上下文 建議 strong 自動 ?? 隨著數據已經逐步成為一個公司寶貴的財富,大數據團隊在公司往往會承擔更加重要的角色。大數據團隊往往要承擔數據平臺維護、數據產品開發、從數據產品中挖掘業務價值等重要的職責。所以對於很多大數據工程師

Python技術棧與Spark交叉資料分析雙向整合技術實戰

版權宣告:本套技術專欄是作者(秦凱新)平時工作的總結和昇華,通過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和叢集環境容量規劃等內容,請持續關注本套部落格。進群:960410445 即可獲取數十套PDF!,如有任何學術交流,可隨時聯絡。 Python Spark Data

資料實時處理技術框架-sparkstorm對比

對比點 Storm Spark Streaming 實時計算模型 純實時,來一條資料,處理一條資料 準實時,對一個時間段內的資料收集起來,作為一個RDD,再處理

移動網際網路資料分析 移動客戶端流量統計 移動客戶端資料統計(一)

移動網際網路資料分析 移動客戶端流量統計 移動客戶端資料統計 原創文章,轉載請註明原地址 在這個公司兩年多了,期間做了移動客戶端資料分析,視訊播放器資料分析,短地址資料分析等資料分析方面的工作, 公司提供的平臺還算大,每日分析的資料好幾千萬,期間積累了一些經驗和教訓,和大

基於MapReduce的手機流量統計分析

methods ica spec err reduce same new form sel 1,代碼 package mr; import java.io.IOException; import org.apache.commons.lang.StringUtils;

統計分析筆記——探索資料

在執行地統計分析之前,瀏覽、熟悉、檢查自己的資料是至關重要的。繪製和檢查資料是地統計分析過程中的必要階段,我們可以從這些工作中獲得一些先驗知識,指導後續的工作。 Stage 1 繪製資料 通過ArcMap的圖層渲染方案繪製資料,我們可以獲得對資料的第一印象。 例如,使用

Python3資料分析挖掘實戰

課程目標: 讓學員從零基礎開始全面系統地掌握Python資料分析與挖掘的相關知識,並能夠勝任Python3資料分析及資料分析與挖掘中級工程師以上的工作,學完後,能夠讓學員掌握Python3基礎知識、編寫Python爬蟲進行網際網路資料採集、Python大資料分析與挖掘等方面的知