陳城 王同喜
摘要:在現(xiàn)如今互聯(lián)網(wǎng)興盛的時(shí)代,大數(shù)據(jù)能通過對數(shù)據(jù)的計(jì)算和分析體現(xiàn)出其數(shù)據(jù)的價(jià)值性,從而高效而準(zhǔn)確地契合用戶的需求。在其背景下,競品分析行業(yè)模式也正由傳統(tǒng)的P2P模式向多元化模式發(fā)展,其搜索引擎具有提供幫助廣告商投放廣告的支援系統(tǒng)。在Hadoop環(huán)境下,使用MapReduce框架進(jìn)行計(jì)算,實(shí)現(xiàn)對離線數(shù)據(jù)的計(jì)算和分析,采用面向?qū)ο蟮姆椒ň幊?,結(jié)合SSM 的web開發(fā)來進(jìn)行需求的分析與功能的設(shè)計(jì)與實(shí)現(xiàn)。其主要功能包括有關(guān)鍵詞搜索、域名搜索、域名競爭對手、關(guān)鍵詞優(yōu)化等功能。在系統(tǒng)需求分析的基礎(chǔ)上,整個(gè)系統(tǒng)包括數(shù)據(jù)采集、清洗、過濾以及可視化,系統(tǒng)測試后,對集群進(jìn)行優(yōu)化,其中還通過研究粒子群算法實(shí)現(xiàn)對MapReduce的優(yōu)化,最終實(shí)現(xiàn)全部功能。
關(guān)鍵詞:競品分析;大數(shù)據(jù);分布式;MapReduce;粒子群
中圖分類號:TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號:1009-3044(2019)10-0215-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 引言
目前的競品分析市場是在現(xiàn)有的或潛在的競爭產(chǎn)品的優(yōu)勢和劣勢的基礎(chǔ)上進(jìn)行評價(jià),在傳統(tǒng)模式中,需要經(jīng)過相關(guān)專業(yè)的人員對競品進(jìn)行實(shí)地調(diào)查、分析、制定、調(diào)整等過程,其煩瑣又耗時(shí)長。然而,隨著科學(xué)技術(shù)的飛速發(fā)展,大數(shù)據(jù)技術(shù)已經(jīng)深入到深入的各個(gè)領(lǐng)域,該競品分析系統(tǒng)選擇使用Hadoop技術(shù)對海量數(shù)據(jù)進(jìn)行清洗過濾、存儲(chǔ)和分析,便于幫助廣告商投放廣告,從而提高廣告的轉(zhuǎn)化率。
2 相關(guān)技術(shù)的基本介紹
2.1 HADOOP的相關(guān)介紹
Apache Hadoop是一種開源框架,支持海量數(shù)據(jù)存儲(chǔ)和離線計(jì)算,主要由HDFS分布式文件系統(tǒng)、MapReduce框架和Hbase數(shù)據(jù)庫三大核心組件組成。
2.2 粒子群算法的實(shí)現(xiàn)原理
假設(shè)在一個(gè)[D]維空間中,有[m]個(gè)粒子組成一個(gè)粒子群,其中第[i]個(gè)粒子的空間位置為[Xi=(xi1,xi2,xi3,...,xiD);i=1,2,3,...,m],這個(gè)是優(yōu)化問題的一個(gè)潛在解,并將其帶入優(yōu)化目標(biāo)函數(shù)中進(jìn)行計(jì)算出其相應(yīng)的適應(yīng)值,根據(jù)適應(yīng)值可衡量[xi]的優(yōu)劣;第[i]個(gè)粒子所經(jīng)歷的最好位置稱其個(gè)體歷史Best位置,記為[Pi=(pi1,pi2,pi3,...,piD);i=1,2,...,m],相應(yīng)的適應(yīng)值為個(gè)體最好適應(yīng)值[Fi];同時(shí),每個(gè)粒子還具有各自的飛行速度[Vi=(vi1,vi2,vi3,...,viD);i=1,2,...,m]。所有粒子經(jīng)歷過的位置中的最好位置稱為全局歷史最好位置,記為[Pg=(pg1,pg2,pg3,...,pgD)],其適應(yīng)值為全局歷史最優(yōu)適應(yīng)值。在算法中,對第[n]代粒子,其第[d]維[(1≤d≤D)]元素速度、位置更新迭代如式[(1)]、[(2)]:
3 系統(tǒng)的設(shè)計(jì)
3.1 系統(tǒng)的總體結(jié)構(gòu)圖
該系統(tǒng)主要是由兩個(gè)子模塊組成,一個(gè)是在Hadoop環(huán)境下提供對數(shù)據(jù)進(jìn)行處理和分析的模塊,一個(gè)是基于B/S架構(gòu)實(shí)現(xiàn)的WEB提供數(shù)據(jù)可視化模塊。如圖1:
3.2 系統(tǒng)流程圖
4 系統(tǒng)功能的實(shí)現(xiàn)
4.1 數(shù)據(jù)的清洗過濾
數(shù)據(jù)清洗和過濾是對數(shù)據(jù)進(jìn)行重新審查和校驗(yàn)過程,目的在于刪除重復(fù)信息、糾正存在的錯(cuò)誤,并提供數(shù)據(jù)的一致性。
4.1.1 第一次迭代實(shí)現(xiàn)
主要是數(shù)據(jù)清洗,清洗異常的數(shù)據(jù),進(jìn)而從原始數(shù)據(jù)中抽取相關(guān)關(guān)鍵詞、SEM(Search Engine Marketing,搜索引擎營銷)廣告和SEO(Search Engine Optimization,搜索引擎優(yōu)化)廣告等關(guān)鍵信息。
(1)根據(jù)數(shù)據(jù)抓取狀態(tài)確定是否正常,或者關(guān)鍵信息是否為空等來清洗異常數(shù)據(jù);
(2)通過對解析后的數(shù)據(jù)文件進(jìn)行讀取其中的關(guān)鍵詞和SEM廣告和SEO廣告信息;
(3)數(shù)據(jù)抽取采用模板模式。
4.1.2 第二次迭代實(shí)現(xiàn)
主要是合并當(dāng)次解析相關(guān)關(guān)鍵詞、關(guān)鍵詞下的SEM和SEO廣告,并保存到數(shù)據(jù)庫中。
(1) 合并當(dāng)次解析相關(guān)關(guān)鍵詞和SEM、SEO廣告,并按照搜索引擎、地域等標(biāo)準(zhǔn)進(jìn)行歸類合并;
(2) 連接Hbase數(shù)據(jù)庫,把當(dāng)次的結(jié)果和歷史結(jié)果進(jìn)行匯總合并,最后更新數(shù)據(jù)庫。
4.1.3 第三次迭代實(shí)現(xiàn)
主要是解析域名、域名下的SEM和SEO廣告、域名下的相關(guān)關(guān)鍵詞以及域名下的競爭對手,并保存到數(shù)據(jù)庫中。
(1)兩個(gè)域名都關(guān)聯(lián)一個(gè)同一個(gè)關(guān)鍵詞,即存在競爭關(guān)系,找出所有存在競爭關(guān)系的域名;
(2) 合并當(dāng)次解析域名、域名下的相關(guān)廣告、域名下的相關(guān)關(guān)鍵詞以及域名下的競爭對手,并按照搜索引擎、地域、域名等標(biāo)準(zhǔn)進(jìn)行歸類合并;
(3)連接Hbase數(shù)據(jù)庫,把當(dāng)次的結(jié)果和歷史結(jié)果進(jìn)行匯總合并,最后更新數(shù)據(jù)庫。
4.2 數(shù)據(jù)的可視化
對于該系統(tǒng),數(shù)據(jù)的可視化界面如圖3:
5 系統(tǒng)的優(yōu)化
5.1 從架構(gòu)設(shè)計(jì)進(jìn)行優(yōu)化
對于查詢性能而言,原始的查詢方式是基于HBase,發(fā)現(xiàn)查詢的數(shù)據(jù)比較集中,效率低下,單一使用HBase提供所有數(shù)據(jù)查詢支撐給WEB端,導(dǎo)致HBase的壓力大。而Redis是基于內(nèi)存的分布式數(shù)據(jù)庫,具有高效讀寫、緩存策略的特性,針對這一特性,在HBase上架設(shè)了一個(gè)Redis做中間數(shù)據(jù)緩存,系統(tǒng)數(shù)據(jù)從緩存中查詢,測試后,查詢效率提高了,HBase的壓力也相對減少了。
5.2 從算法角度進(jìn)行優(yōu)化
(1)通過研究基本粒子群算法,并將其運(yùn)用到MapReduce中對其集群系統(tǒng)進(jìn)行調(diào)優(yōu)。鑒于該競品分析系統(tǒng)的特性,優(yōu)化整個(gè)系統(tǒng),其主要是優(yōu)化MapReduce,亦是使每個(gè)Reduce處理的Value個(gè)數(shù)基本相等,使每個(gè)job的總的運(yùn)行時(shí)間最短;即求每個(gè)Reduce處理的所有Value值個(gè)數(shù)的最大值的最小值。即[f=min(max(reduce(i))),i=1,2,3,...,n],n為Reduce的個(gè)數(shù),[reduce(i)]為第[i]個(gè)Reduce處理的Value的和。[reduce(i)=sum(size(value(j)))],[value(j)],為輸入第[j]個(gè)Key的Value的個(gè)數(shù)。Hadoop的Map輸出是
(2)如圖5所示,經(jīng)過比較,在使用粒子群算法優(yōu)化后,發(fā)現(xiàn)Job運(yùn)行時(shí)間相比原始的運(yùn)行時(shí)間越來越短。
6 總結(jié)
傳統(tǒng)的競品分析行業(yè)的發(fā)展模式已不能滿足目前的需求,而采用分布式計(jì)算服務(wù)模式,能滿足該系統(tǒng)對海量數(shù)據(jù)的計(jì)算、存儲(chǔ)和分析。
在該系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程中,難點(diǎn)如下:
(1)從不同的角度對系統(tǒng)進(jìn)行優(yōu)化;
(2)使用智能算法優(yōu)化時(shí),如何區(qū)分每個(gè)Map是一個(gè)難點(diǎn),并將此Map處理的Key取Hash存儲(chǔ)在Redis中,然后在此Map結(jié)束后的Partition階段取出對應(yīng)的數(shù)據(jù)進(jìn)行計(jì)算。其實(shí)MapReduce底層實(shí)現(xiàn)的過程中,每個(gè)Map就是一個(gè)多線程,通過獲取每個(gè)線程的ID從而區(qū)分每個(gè)Map。
參考文獻(xiàn):
[1]陳琳.淺論Hadoop平臺(tái)在大數(shù)據(jù)中的應(yīng)用[J].太原學(xué)院學(xué)報(bào),2017,26(13):56-60.
[2]周鋒,李旭偉.一種改進(jìn)的MapReduce并行編程模型[J].科協(xié)論壇,2014(15):65-70.
[3]郁磊.MATLAB智能算法30個(gè)案例分析[M].北京:北京航空航天大學(xué)出版社,2015:45-107.
[4]Tom White,Hadoop權(quán)威指南[M].4.王海.北京:清華大學(xué)出版社,2017:78~314.
[5]曹英.大數(shù)據(jù)環(huán)境下Hadoop性能優(yōu)化的研究[D].大連海事大,2013.
[6]王婧.基于粒子群優(yōu)化算法的集群調(diào)度策略研究掘[D].中國石油大學(xué),2011.
[7]紅楊勇,任淑霞,冉娟.基于粒子群優(yōu)化的k-means改進(jìn)算法實(shí)現(xiàn)Web日志挖掘[J].計(jì)算機(jī)應(yīng)用,2016,12(26):29~35.
[8]陶永才,石磊.異構(gòu)資源環(huán)境下的MapReduce性能優(yōu)化[J].小型微型計(jì)算機(jī)系統(tǒng),2013,35(02):287-292
[9]張宏偉.基于MapReduce的遺傳算法在組合優(yōu)化問題中的研究[D].內(nèi)蒙古農(nóng)業(yè)大學(xué),2016.
[10]張志宇.粒子群優(yōu)化算法的改進(jìn)研究及其應(yīng)用[D].計(jì)算機(jī)科學(xué),2017,46(15):53-70.
[11]馮新建.基于MapReduce的迭代型分布式數(shù)據(jù)處理研究[D].山東大學(xué),2017.
[12]Shuihua Wang,Yudong Zhang.Feed-forward neural network optimized by hybridization of PSO and ABC for abnormal brain detection[J].Int. J. Imaging Syst.Technol,2015,32(2):10-16
【通聯(lián)編輯:梁書】