何慶++龔靜
摘 要:在移動互聯(lián)網(wǎng)迅猛發(fā)展的時代,電信運(yùn)營商對用戶上網(wǎng)日志等非結(jié)構(gòu)化數(shù)據(jù)的處理、分析和挖掘變得尤為重要,傳統(tǒng)的基于小型機(jī)和關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng)已經(jīng)無法滿足海量非結(jié)構(gòu)化數(shù)據(jù)的及時處理需求,相對傳統(tǒng)做法,搭建X86集群、利用云計算技術(shù)對海量非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行處理,具有高效、低成本、易擴(kuò)展等方面的巨大優(yōu)勢。另外,用戶上網(wǎng)日志中包含著大量的個性化信息,如何充分挖掘和分析這些信息,對電信運(yùn)營商在移動互聯(lián)時代實(shí)現(xiàn)精細(xì)化運(yùn)營至關(guān)重要。該論文主要以用戶WAP日志為例,詳細(xì)闡述如何利用云計算技術(shù)處理海量的非結(jié)構(gòu)化數(shù)據(jù),進(jìn)而去挖掘和分析用戶上網(wǎng)行為。
關(guān)鍵詞:非結(jié)構(gòu)化數(shù)據(jù) 云計算 用戶上網(wǎng)行為
中圖分類號:TP393.08 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2014)11(c)-0011-02
隨著3G時代的來臨,電信行業(yè)競爭日趨激烈,而移動互聯(lián)業(yè)務(wù)的快速發(fā)展,也使各大電信運(yùn)營商面臨新的機(jī)遇和挑戰(zhàn)。如何在信息大爆炸時代,對電子商務(wù)、社交網(wǎng)絡(luò)、物聯(lián)網(wǎng)、新醫(yī)療、LBS、視頻、音樂等方面產(chǎn)生的海量非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行有效處理并提供高價值的分析,是業(yè)內(nèi)面臨的共同難題。
據(jù)不完全統(tǒng)計,電信運(yùn)營商接近50%的移動互聯(lián)網(wǎng)流量來自國內(nèi)排名前10的WAP網(wǎng)站。從這個角度分析,雖然當(dāng)前各種移動互聯(lián)業(yè)務(wù)層出不窮,種類繁多,但WAP應(yīng)用仍然占據(jù)主導(dǎo)地位。此外,互聯(lián)網(wǎng)上知名門戶和垂直類網(wǎng)站也紛紛建立WAP版,搶占移動互聯(lián)網(wǎng)市場。對電信運(yùn)營商而言,業(yè)務(wù)多樣化趨勢情況下,更需要很好地理解業(yè)務(wù)價值、客戶價值,促進(jìn)精細(xì)化營銷;制定相應(yīng)策略與控制,降低流量成本和提升流量收入,促進(jìn)流量業(yè)務(wù)發(fā)展。通過云計算解決方案,對海量WAP日志進(jìn)行數(shù)據(jù)處理和挖掘,低成本高效率的支撐業(yè)務(wù)應(yīng)用。
1 需求分析
1.1 功能需求
(1)數(shù)據(jù)源。
用戶WAP上網(wǎng)日志記錄,每天處理數(shù)據(jù)量約1T,45億條記錄。
(2)WAP日志的云ETL。
提供基于HADOOP集群的數(shù)據(jù)處理平臺,通過統(tǒng)一調(diào)度實(shí)現(xiàn)并行ETL過程。
(3)網(wǎng)頁分類。
①從WAP日志提取URL,將URL經(jīng)過網(wǎng)頁分類等處理,轉(zhuǎn)化為可以理解的指定的網(wǎng)頁標(biāo)簽,并保留關(guān)鍵字;
②網(wǎng)頁標(biāo)簽分為三級,每個網(wǎng)頁的關(guān)鍵詞保留5個,圖書和音樂類網(wǎng)頁保留圖書名和音樂名作為關(guān)鍵字;
③按照標(biāo)簽進(jìn)行網(wǎng)頁分類應(yīng)具備一定的靈活性,除了一級標(biāo)簽保持穩(wěn)定外,二級和三級標(biāo)簽均可因不同的業(yè)務(wù)分析需求而變化和重構(gòu)。
(4)用戶上網(wǎng)行為分析。
基于客戶的訪問行為,識別其偏好特征,根據(jù)內(nèi)容偏好特征進(jìn)行客戶細(xì)分,并支持目標(biāo)客戶群提取,以便支撐營銷活動。
1.2 性能需求
基于以上業(yè)務(wù)需求,系統(tǒng)能力要求至少配備6臺X86服務(wù)器,其中1臺為主節(jié)點(diǎn),5臺為數(shù)據(jù)節(jié)點(diǎn)。具體配置如下。
(1)服務(wù)器型號是IBM 3650m3;
(2)CPU為雙路六核,Intel X5650處理器,2.66GHz主頻;
(3)內(nèi)存是48GB;
(4)存儲是6*1TB SATA硬盤,7200轉(zhuǎn);
(5)網(wǎng)口是4個千兆電口。
2 關(guān)鍵技術(shù)
2.1 網(wǎng)頁數(shù)據(jù)的獲取
爬蟲的工作原理:首先爬蟲根據(jù)WebDB生成一個待抓取網(wǎng)頁的URL集合叫做Fetchlist,接著下載線程Fetcher根據(jù) Fetchlist將網(wǎng)頁抓取回來,如果下載線程有很多個,那么就生成很多個Fetchlist,也就是一個Fetcher對應(yīng)一個Fetchlist。然后爬蟲用抓取回來的網(wǎng)頁更新WebDB,根據(jù)更新后的WebDB生成新的Fetchlist,里面是未抓取的或者新發(fā)現(xiàn)的URLs,然后下一輪抓取循環(huán)重新開始。這個循環(huán)過程可以叫做“產(chǎn)生/抓取/更新”循環(huán)。
2.2 基于分布式系統(tǒng)的海量數(shù)據(jù)處理
分布式系統(tǒng)采用基于Hadoop的集群架構(gòu),其特征主要有以下幾點(diǎn)。
(1)先進(jìn)性;
(2)高可靠性;
(3)成熟性;
(4)易維護(hù)性。
2.2.1 分布式存儲系統(tǒng)
分布式平臺底層的基本結(jié)構(gòu)是基于一組特定的節(jié)點(diǎn)構(gòu)建而成,這些節(jié)點(diǎn)主要分為兩類,一類是元數(shù)據(jù)節(jié)點(diǎn)(NameNode),它在分布式存儲系統(tǒng)內(nèi)部提供元數(shù)據(jù)服務(wù);另一類是數(shù)據(jù)節(jié)點(diǎn)(DataNode),為系統(tǒng)提供數(shù)據(jù)存儲塊。
一個分布式集群由一個元數(shù)據(jù)節(jié)點(diǎn)和大量的數(shù)據(jù)節(jié)點(diǎn)構(gòu)成,并被許多用戶端訪問。出于可靠性考慮,每一個塊被復(fù)制到多個數(shù)據(jù)節(jié)點(diǎn)上。默認(rèn)情況下,保存三個副本,本地節(jié)點(diǎn)一份,與該節(jié)點(diǎn)相同的機(jī)架上一份,不同機(jī)架節(jié)點(diǎn)上一份,但這個副本數(shù)量可以由用戶指定。
每個分布式集群通常只有一個元數(shù)據(jù)節(jié)點(diǎn),用來維護(hù)文件系統(tǒng)所有的元數(shù)據(jù)(metadata),包括名字空間、訪問控制信息、從文件到塊的映射以及塊的當(dāng)前位置。
分布式存儲系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺服務(wù)器并行計算,提供高吞吐量的應(yīng)用程序數(shù)據(jù)訪問,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。
2.2.2 Map/Reduce運(yùn)行環(huán)境
MapReduce是Google發(fā)明的一種編程模型。在這種編程模型下,用戶通過定義一個map函數(shù)和一個reduce函數(shù)來解決問題。map函數(shù)對用戶輸入的鍵/值對(key/value pair)進(jìn)行處理(處理時可能只有值這一項(xiàng)有用),生成一系列新的鍵/值對作為中間結(jié)果;系統(tǒng)(MapReduce的實(shí)現(xiàn))對map函數(shù)生成的鍵/值對進(jìn)行處理,將同屬于一個鍵(key)的值(value)組合在一起,生成鍵/值列表((key/list of values) pair)對;reduce函數(shù)將鍵/值列表對作為輸入,對同屬于一個鍵的值列表進(jìn)行處理,生成最終處理結(jié)果輸出。endprint