一、前言

  針對大叔據(jù)實時處理的入門,除了使用WordCount示例之外,還需要相對更深入點的示例來理解Storm,因此,本篇博文利用Storm實現(xiàn)了頻繁項集挖掘的案例,以方便更好的入門Storm。

二、基礎知識

  2.1 頻繁二項集挖掘

  如顧客去超市購物時,牙膏和牙刷基本上都是擺放在一起,因為購買牙膏時,很有可能會購買牙刷。另外,“啤酒與尿布”的案例則是對訂單進行分析挖掘后發(fā)現(xiàn)的規(guī)律,將啤酒和尿布一起擺放會促進啤酒的銷量。

  2.2 算法設計

  本示例中不考慮太復雜的挖掘算法,只考慮將兩個商品組合后的挖掘,設計如下

    · 將每筆訂單的商品按照兩兩分組。

    · 將每個分組的頻度進行統(tǒng)計(不考慮商品的次序)。

    · 根據(jù)頻度計算支持度(每個組合出現(xiàn)的頻率越高,更有可能是頻繁組合)和置信度(商品組合出現(xiàn)的置信程度)。

    · 設置支持度和置信度閾值,過濾不達標的數(shù)據(jù)。

  2.3 Storm設計思路

    · 使用Redis作為存儲訂單數(shù)據(jù)的數(shù)據(jù)庫。

    · 使用Spout從Redis中讀取訂單數(shù)據(jù)。

    · 使用Bolt計算分組頻度。

    · 使用Bolt計算支持度和置信度。

    · 使用Bolt篩選結果并存儲到Redis中。

  2.4 拓撲結構圖

  根據(jù)程序思路設計如下所示的拓撲結構,其組件在之后進行介紹。

  大數(shù)據(jù)培訓,云培訓,數(shù)據(jù)挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經(jīng)理培訓

三、設計實現(xiàn)

網(wǎng)友評論