一、前言
針對(duì)大叔據(jù)實(shí)時(shí)處理的入門,除了使用WordCount示例之外,還需要相對(duì)更深入點(diǎn)的示例來(lái)理解Storm,因此,本篇博文利用Storm實(shí)現(xiàn)了頻繁項(xiàng)集挖掘的案例,以方便更好的入門Storm。
二、基礎(chǔ)知識(shí)
2.1 頻繁二項(xiàng)集挖掘
如顧客去超市購(gòu)物時(shí),牙膏和牙刷基本上都是擺放在一起,因?yàn)橘?gòu)買牙膏時(shí),很有可能會(huì)購(gòu)買牙刷。另外,“啤酒與尿布”的案例則是對(duì)訂單進(jìn)行分析挖掘后發(fā)現(xiàn)的規(guī)律,將啤酒和尿布一起擺放會(huì)促進(jìn)啤酒的銷量。
2.2 算法設(shè)計(jì)
本示例中不考慮太復(fù)雜的挖掘算法,只考慮將兩個(gè)商品組合后的挖掘,設(shè)計(jì)如下
· 將每筆訂單的商品按照兩兩分組。
· 將每個(gè)分組的頻度進(jìn)行統(tǒng)計(jì)(不考慮商品的次序)。
· 根據(jù)頻度計(jì)算支持度(每個(gè)組合出現(xiàn)的頻率越高,更有可能是頻繁組合)和置信度(商品組合出現(xiàn)的置信程度)。
· 設(shè)置支持度和置信度閾值,過(guò)濾不達(dá)標(biāo)的數(shù)據(jù)。
2.3 Storm設(shè)計(jì)思路
· 使用Redis作為存儲(chǔ)訂單數(shù)據(jù)的數(shù)據(jù)庫(kù)。
· 使用Spout從Redis中讀取訂單數(shù)據(jù)。
· 使用Bolt計(jì)算分組頻度。
· 使用Bolt計(jì)算支持度和置信度。
· 使用Bolt篩選結(jié)果并存儲(chǔ)到Redis中。
2.4 拓?fù)浣Y(jié)構(gòu)圖
根據(jù)程序思路設(shè)計(jì)如下所示的拓?fù)浣Y(jié)構(gòu),其組件在之后進(jìn)行介紹。
三、設(shè)計(jì)實(shí)現(xiàn)
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26