范孟可,王 攀
(南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)
基于Hadoop的固網(wǎng)寬帶終端識(shí)別技術(shù)研究和實(shí)現(xiàn)
范孟可,王 攀
(南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)
隨著大數(shù)據(jù)時(shí)代的來(lái)臨,大數(shù)據(jù)在各個(gè)行業(yè)應(yīng)用越來(lái)越廣泛。大數(shù)據(jù)在運(yùn)營(yíng)商行業(yè)的應(yīng)用也很普遍,但同時(shí)也遇到了很多技術(shù)問(wèn)題,其中家庭畫像的塑造是運(yùn)營(yíng)商大數(shù)據(jù)的一個(gè)核心問(wèn)題。如何提取和識(shí)別固網(wǎng)寬帶下的終端類型是一個(gè)有待解決的問(wèn)題。不像移動(dòng)網(wǎng),固網(wǎng)寬帶由于沒(méi)有信令通道,所以不攜帶任何準(zhǔn)確的終端信息,因而對(duì)固網(wǎng)下的終端類型識(shí)別比較困難。傳統(tǒng)方法都是采用解析和匹配HTTP GET報(bào)文中的UA字段進(jìn)行識(shí)別。但這種方法由于UA的非標(biāo)準(zhǔn)化,以及終端數(shù)量和種類眾多的緣故而導(dǎo)致終端類型的識(shí)別準(zhǔn)確率低下。文中采用Hadoop框架,利用Hive中UDF的方法,結(jié)合分布式爬蟲獲取終端庫(kù),可以更加快速準(zhǔn)確地識(shí)別出用戶上網(wǎng)終端信息。實(shí)驗(yàn)結(jié)果表明,終端識(shí)別準(zhǔn)確率可以達(dá)到92%以上,相比傳統(tǒng)方法有了大幅提升。
終端識(shí)別;Hadoop;User Defined Function (UDF);分布式爬蟲;固網(wǎng)寬帶;大數(shù)據(jù)運(yùn)營(yíng)
當(dāng)今,隨著計(jì)算機(jī)技術(shù)的發(fā)展,大數(shù)據(jù)被應(yīng)用到生活中的各行各業(yè)。大數(shù)據(jù)已經(jīng)是行業(yè)的趨勢(shì),當(dāng)今時(shí)代也是“大數(shù)據(jù)”[1]時(shí)代。
傳統(tǒng)的電信運(yùn)營(yíng)商還只是把數(shù)據(jù)簡(jiǎn)單地保存起來(lái),沒(méi)有發(fā)揮數(shù)據(jù)的價(jià)值。而隨著信息技術(shù)的快速發(fā)展,運(yùn)營(yíng)商開始意識(shí)到數(shù)據(jù)對(duì)企業(yè)日常的管理和營(yíng)銷的支撐具有重大意義。因此,運(yùn)營(yíng)商建立了一些企業(yè)信息化系統(tǒng)為公司的經(jīng)營(yíng)決策[2]和資源配置提供幫助。這些系統(tǒng)包括企業(yè)的管理系統(tǒng)、運(yùn)營(yíng)支撐系統(tǒng)、市場(chǎng)營(yíng)銷支撐系統(tǒng)等。相對(duì)于互聯(lián)網(wǎng)商,電信運(yùn)營(yíng)商的最大優(yōu)勢(shì)是它擁有用戶的全流量數(shù)據(jù),是用戶數(shù)據(jù)[3]的第一接口。電信運(yùn)營(yíng)商擁有用戶身份信息、網(wǎng)絡(luò)狀態(tài)、終端、業(yè)務(wù)識(shí)別、位置、社交關(guān)系、消費(fèi)信用等信息,而且這些信息具有很大的商業(yè)價(jià)值。另外手機(jī)、PAD等移動(dòng)終端是移動(dòng)互聯(lián)網(wǎng)時(shí)代必不可少的物品。電信運(yùn)營(yíng)商需要對(duì)用戶使用的移動(dòng)終端做深入研究,以此來(lái)提升用戶體驗(yàn),提高自己的用戶量。因此進(jìn)行終端型號(hào)識(shí)別以及終端功能配置識(shí)別具有很大的意義。
(1)不僅能夠減輕無(wú)線網(wǎng)絡(luò)中數(shù)據(jù)業(yè)務(wù)負(fù)擔(dān),而且能提高服務(wù)質(zhì)量。固網(wǎng)寬帶自建家庭WiFi是一個(gè)很好的解決方案。統(tǒng)計(jì)有多少移動(dòng)終端支持WiFi功能對(duì)于運(yùn)營(yíng)商來(lái)說(shuō)是需要解決的問(wèn)題。
(2)對(duì)于傳統(tǒng)市場(chǎng)營(yíng)銷,往往通過(guò)區(qū)域劃分來(lái)反映相應(yīng)的用戶商業(yè)價(jià)值。但隨著互聯(lián)網(wǎng)的發(fā)展,區(qū)域劃分并不能準(zhǔn)確代表用戶的商業(yè)價(jià)值[4]?,F(xiàn)在提出通過(guò)用戶終端、用戶上網(wǎng)行為和用戶訂閱的業(yè)務(wù)來(lái)分析用戶潛在的商業(yè)價(jià)值。
因此,為了滿足以上類似的要求,研究互聯(lián)網(wǎng)中用戶的移動(dòng)終端類型成為重要課題。然而,在這個(gè)大數(shù)據(jù)時(shí)代,人們的生活中出現(xiàn)了很多新型移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù),比如微信等即時(shí)通信、支付寶等手機(jī)支付、百度地圖等導(dǎo)航服務(wù)和直播平臺(tái)等。而且當(dāng)今移動(dòng)互聯(lián)網(wǎng)用戶量巨大,在網(wǎng)絡(luò)方面4G的普及,電信百兆寬帶的提倡,大大提高了網(wǎng)絡(luò)速率。在智能終端[5]方面,硬件處理性能和軟件功能都有大幅提高。這些因素導(dǎo)致網(wǎng)絡(luò)流量數(shù)據(jù)[6]空前巨大,這些海量的用戶數(shù)據(jù),對(duì)于數(shù)據(jù)處理能力也提出了更高的要求,傳統(tǒng)的計(jì)算方式已經(jīng)不能滿足當(dāng)前數(shù)據(jù)量的要求。然而云計(jì)算模型Hadoop框架使對(duì)海量的數(shù)據(jù)處理[7]和挖掘成為可能。Hadoop的出現(xiàn)為人們提供了一個(gè)可靠的共享存儲(chǔ)和處理分析系統(tǒng),使人們?cè)诖鎯?chǔ)和分析大數(shù)據(jù)時(shí)更加高效,其分布式文件系統(tǒng)HDFS可以實(shí)現(xiàn)數(shù)據(jù)的分布式存儲(chǔ)。
基于此,文中采用Hadoop框架,對(duì)用戶終端進(jìn)行識(shí)別。提出了自己的識(shí)別方法并通過(guò)實(shí)驗(yàn)進(jìn)行驗(yàn)證。
對(duì)于移動(dòng)用戶終端,最早是根據(jù)HTTP報(bào)文的User-Agent(UA)報(bào)文頭獲取終端性能[8]信息。
早期,互聯(lián)網(wǎng)是基于文本的,用戶是通過(guò)敲命令的方式訪問(wèn)互聯(lián)網(wǎng)。后來(lái)開發(fā)出了瀏覽互聯(lián)的工具,這些工具稱為用戶代理,即User-Agent。通過(guò)對(duì)User-Agent[9]進(jìn)行解析,可以獲得用戶終端的瀏覽器、操作系統(tǒng)、字符集和終端型號(hào)等。各種各樣的HTTP請(qǐng)求報(bào)文[10]格式和字符集在不斷變換,網(wǎng)絡(luò)開發(fā)者無(wú)法應(yīng)對(duì),因此,標(biāo)準(zhǔn)化組織提出了兩個(gè)規(guī)范:
(1)萬(wàn)維網(wǎng)協(xié)會(huì)提出了復(fù)合配置/偏好設(shè)置(CC/PP)標(biāo)準(zhǔn)化,即移動(dòng)終端需要采用統(tǒng)一標(biāo)準(zhǔn)的格式向網(wǎng)絡(luò)服務(wù)上傳移動(dòng)終端配置信息。
(2)開放移動(dòng)聯(lián)盟提出了一個(gè)CC/PP詳細(xì)字典,即User Agent Profile (UAProff)。UAProff可以用來(lái)表示移動(dòng)終端信息,而且在不好的無(wú)線網(wǎng)絡(luò)中,網(wǎng)絡(luò)服務(wù)根據(jù)終端性能,可以高效地在終端顯示內(nèi)容。一個(gè)移動(dòng)終端如果遵循了UAProff標(biāo)準(zhǔn),當(dāng)它向服務(wù)端發(fā)送HTTP請(qǐng)求時(shí),請(qǐng)求報(bào)文中會(huì)包含終端信息的XML文件URL。服務(wù)端獲取URL后,讀取XML文件,得到終端信息。
雖然發(fā)布了以上兩個(gè)標(biāo)準(zhǔn),但是市場(chǎng)的移動(dòng)終端類型很多,很多都沒(méi)有遵循以上標(biāo)準(zhǔn),致使終端識(shí)別沒(méi)有得到好的解決。這時(shí)開源項(xiàng)目WURFL(Wireless Universal Resource File)提出了另一種解決方案。UA字段中含有很多用戶移動(dòng)終端的信息,WURFL就是基于UA自身內(nèi)容進(jìn)行終端識(shí)別。WURFL首先將UA的內(nèi)容與包含終端信息的配置文件進(jìn)行文本匹配,這樣Web服務(wù)器就可以識(shí)別終端的型號(hào)和品牌。這種方式突破了UA格式的限制,然而仍有缺陷,因?yàn)樗R(shí)別的終端信息需要依賴自身的資料庫(kù)。當(dāng)今的用戶終端市場(chǎng)上,移動(dòng)終端日益更新,但是WURFL資料庫(kù)中終端型號(hào)及終端信息的更新速度遠(yuǎn)遠(yuǎn)趕不上用戶終端的腳步,因此這種終端識(shí)別的準(zhǔn)確率不是很高。
另外,傳統(tǒng)上對(duì)User-Agent獲取終端信息時(shí),采用基于字符串匹配的方法。這種方法就是對(duì)User-Agent獲取能夠代表終端類的字符串,然后與一個(gè)內(nèi)容很大的機(jī)器詞典中的詞條進(jìn)行逐一匹配或者按照某種算法進(jìn)行匹配,如果配到了,則獲取到終端類型。該種方法實(shí)現(xiàn)簡(jiǎn)單,但是對(duì)于海量的用戶數(shù)據(jù)來(lái)說(shuō)具有很大的缺點(diǎn)。首先大容量的機(jī)器詞典一般存于文件或者數(shù)據(jù)庫(kù)中,占用很大的資源,而且匹配時(shí)對(duì)于機(jī)器詞典具有很大的依賴性,不同詞典會(huì)導(dǎo)致不同的結(jié)果。其次,當(dāng)數(shù)據(jù)量很大時(shí),終端匹配的效率非常低。當(dāng)數(shù)據(jù)量超過(guò)千萬(wàn)級(jí)別時(shí),數(shù)據(jù)庫(kù)的性能會(huì)直線下降。上述方法幾乎不能完成海量數(shù)據(jù)的用戶終端型號(hào)識(shí)別。
文中是對(duì)User-Agent進(jìn)行分析,獲取相應(yīng)用戶終端信息。對(duì)User-Agent進(jìn)行分詞[11],采用正則表達(dá)式[12],首先過(guò)濾掉不代表用戶終端信息的字符串,然后特定位置的字符串通過(guò)正則表達(dá)式獲取。因?yàn)楦鞣N移動(dòng)終端較多,比如手機(jī)、平板、PC等,因此通過(guò)統(tǒng)計(jì)不同終端類型,寫出不同的正則表達(dá)式進(jìn)行匹配,得到一個(gè)正則表達(dá)式的配置文件。然后利用分布式爬蟲獲取電商上各種終端型號(hào)的相關(guān)信息作終端庫(kù)信息。利用Hadoop/hive分布式快速處理大數(shù)據(jù)[13]量的特點(diǎn)進(jìn)行終端匹配。為了使開發(fā)方便快捷,使用hive中的UDF功能,對(duì)用戶終端類型進(jìn)行識(shí)別。
2.1Hadoop簡(jiǎn)介
Hadoop[14]是Apache組織管理的一個(gè)開源項(xiàng)目,是對(duì)于Google云計(jì)算理論Big Table、MapReduce、GFS的軟件實(shí)現(xiàn)。Hadoop可以讓用戶在不了解底層細(xì)節(jié)的情況下開發(fā)MapReduce程序,并可以運(yùn)算和存儲(chǔ)在硬件配置較低的商用集群上。Hadoop主要包含兩個(gè)核心組件,即分布式文件系統(tǒng)HDFS和分布式計(jì)算模型MapReduce。HDFS[15]是Hadoop的分布式文件系統(tǒng),包含兩種節(jié)點(diǎn):namenode(管理者)和datanode(工作者)。namenode負(fù)責(zé)管理整個(gè)文件系統(tǒng)的命名空間,維護(hù)文件系統(tǒng)的樹及樹內(nèi)的所有文件目錄,并將這些元數(shù)據(jù)保存在namenode的本地磁盤上。namenode也同時(shí)記錄每個(gè)塊及各個(gè)塊的數(shù)據(jù)節(jié)點(diǎn)信息。HDFS文件系統(tǒng)實(shí)際存儲(chǔ)是由datanode負(fù)責(zé),根據(jù)需要存儲(chǔ)和檢索的數(shù)據(jù)塊,定期向namenode發(fā)送它們所存儲(chǔ)塊的列表,從而與namenode進(jìn)行交互。MapReduce是一個(gè)編程框架模型,可以進(jìn)行穩(wěn)定、高效、超大數(shù)據(jù)量的分布式分析計(jì)算。MapReduce的執(zhí)行主要包含Map和Reduce兩個(gè)過(guò)程,當(dāng)Map過(guò)程結(jié)束后還會(huì)進(jìn)行Shuffle/Sort過(guò)程,負(fù)責(zé)對(duì)Map產(chǎn)生的輸出進(jìn)行排序和把Map輸出傳遞給Reduce。
2.2Hive/UDF
Hive[16-17]是構(gòu)建在Hadoop上的數(shù)據(jù)倉(cāng)庫(kù)平臺(tái),其目的是讓Hadoop上的數(shù)據(jù)操作與傳統(tǒng)的SQL相結(jié)合,讓開發(fā)更簡(jiǎn)單。Hive可以在HDFS上構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)來(lái)存儲(chǔ)結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)來(lái)源于HDFS的原始數(shù)據(jù)。Hive擁有類似SQL的HiveQL查詢語(yǔ)言,可以進(jìn)行存儲(chǔ)、查詢、變換數(shù)據(jù)、分析數(shù)據(jù)等操作。通過(guò)解析HiveQL[18]語(yǔ)句,在底層被轉(zhuǎn)換成MapReduce操作。更方便的是,Hive提供自定義函數(shù),即UDF(User Defined Function)。雖然Hive中內(nèi)置許多函數(shù),但通常并不能滿足用戶的需求,因此Hive提供了自定義函數(shù)的開發(fā)。用戶根據(jù)自己的需求編寫相應(yīng)的函數(shù),從而更方便地對(duì)數(shù)據(jù)進(jìn)行處理。在使用時(shí),可以將自定義的函數(shù)打成jar包,在Hive會(huì)話中添加自定義jar文件,然后創(chuàng)建函數(shù),繼而使用。另外,也可以將自定義函數(shù)寫到Hive的內(nèi)置函數(shù)中,使之成為默認(rèn)函數(shù),這樣就不需要在使用時(shí)重新創(chuàng)建。通過(guò)上述內(nèi)容不難發(fā)現(xiàn),使用Hive中的HiveQL語(yǔ)句比編寫MapReduce代碼更簡(jiǎn)單,而且提供UDF功能,更減少了開發(fā)的代碼。
2.3網(wǎng)絡(luò)爬蟲-WebMagic爬蟲框架
網(wǎng)絡(luò)通常類比成一個(gè)蜘蛛網(wǎng),每個(gè)節(jié)點(diǎn)就是一個(gè)網(wǎng)站,蜘蛛絲就是網(wǎng)站的鏈接,聯(lián)系著各個(gè)網(wǎng)站。網(wǎng)絡(luò)爬蟲的基本原理就是通過(guò)網(wǎng)頁(yè)中的鏈接地址來(lái)找到下一個(gè)網(wǎng)頁(yè),通常從網(wǎng)站主頁(yè)面開始,讀取網(wǎng)頁(yè)HTML內(nèi)容,通過(guò)解析HTML內(nèi)容獲取到想要的內(nèi)容和其中的鏈接地址,然后從這個(gè)鏈接地址跳轉(zhuǎn)到下一個(gè)網(wǎng)頁(yè),再進(jìn)行解析。就這樣一直不斷地重復(fù)下去,直到把這個(gè)網(wǎng)站上的所有網(wǎng)頁(yè)都分析完為止。
WebMagic是一個(gè)開源的Java垂直爬蟲框架,目標(biāo)是簡(jiǎn)化爬蟲的開發(fā)流程,讓開發(fā)者注重邏輯功能開發(fā)。其主要功能包括:頁(yè)面下載、鏈接提取、URL管理和內(nèi)容分析與持久化。WebMagic中的各組件如下:
(1)Downloader組件:采用Apache HttpClient對(duì)頁(yè)面進(jìn)行下載,獲取頁(yè)面的HTML以便后續(xù)處理。
(2)PageProcessor組件:采用基于XPath和CSS的選擇器,對(duì)網(wǎng)頁(yè)的HTML內(nèi)容進(jìn)行解析,得到想要的信息。另外還可以從中獲取新的頁(yè)面鏈接。
(3)Schedule組件:主要負(fù)責(zé)對(duì)獲取的URL進(jìn)行管理并去掉重復(fù)的URL。開發(fā)人員不僅可以使用基于JDK的內(nèi)存隊(duì)列來(lái)管理URL,也可以通過(guò)Redis對(duì)URL進(jìn)行分布式管理。
(4)Pipeline組件:對(duì)爬取結(jié)果進(jìn)行自定義,獲取想要的數(shù)據(jù)格式,并且可以將結(jié)果保存到文件中或數(shù)據(jù)庫(kù)中,以實(shí)現(xiàn)數(shù)據(jù)的永久保存。
基于Hadoop的電信運(yùn)營(yíng)商海量數(shù)據(jù)處理需要做到:
(1)不僅能夠海量讀取、存儲(chǔ)多種結(jié)構(gòu)的用戶數(shù)據(jù),還能對(duì)已有的數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行監(jiān)控和管理。
(2)能夠?qū)Υ笠?guī)模的數(shù)據(jù)進(jìn)行高效處理運(yùn)算,具有高數(shù)據(jù)吞吐量的功能。
(3)為了提高市場(chǎng)評(píng)估和網(wǎng)絡(luò)運(yùn)營(yíng)能力,需要具有高拓展性,支持低成本數(shù)據(jù)挖掘,同時(shí)兼容多種應(yīng)用。
(4)實(shí)時(shí)性的數(shù)據(jù)分析要求不高。
基于以上的數(shù)據(jù)特性和目標(biāo),根據(jù)Hadoop和Hive的特性,對(duì)電信寬帶下的用戶終端信息進(jìn)行挖掘,可以更快地處理海量數(shù)據(jù),以及更方便地對(duì)用戶終端信息進(jìn)行挖掘。同時(shí)編寫UDF將源數(shù)據(jù)進(jìn)行預(yù)處理,從而得到人們期望處理的數(shù)據(jù)格式。Hive可以方便地插入用戶編寫的處理代碼并在查詢中調(diào)用它們。由此可以看出,利用hive執(zhí)行任務(wù)的效率低于直接用MapReduce程序執(zhí)行任務(wù)的效率,但是Hive給廣大用戶提供了最寶貴的SQL接口,并且避免了編寫繁瑣的MapReduce程序。為此,做出以下技術(shù)方案,如圖1所示。
圖1 技術(shù)方案
因?yàn)橛脩魯?shù)據(jù)中包含用戶終端信息的字段,不是規(guī)則的,無(wú)法直接通過(guò)HQL語(yǔ)句特定的函數(shù)進(jìn)行處理,所以采用UDF對(duì)用戶終端的字段進(jìn)行處理。通過(guò)對(duì)用戶數(shù)據(jù)中含有UA的字段進(jìn)行分析,寫出能獲取到用戶終端類型的正則表達(dá)式,寫成配置文件,作為正則匹配。UDF函數(shù)邏輯如圖2所示。
圖2 UDF函數(shù)邏輯
4.1實(shí)驗(yàn)環(huán)境
CDH的Hadoop集群,一個(gè)namenode節(jié)點(diǎn),五個(gè)datanode節(jié)點(diǎn)。
namenode配置:CPU的型號(hào)為Intel 2650,內(nèi)存為16 G。
datanode配置:CPU為Intel 2650,內(nèi)存32 G。
4.2實(shí)驗(yàn)數(shù)據(jù)
(1)用戶上網(wǎng)源數(shù)據(jù)。
為了驗(yàn)證該技術(shù)方案,搭建了實(shí)驗(yàn)測(cè)試環(huán)境,包括100臺(tái)終端(PC/PAD/PHONE/盒子),采集了12個(gè)月的數(shù)據(jù),共計(jì)1 000萬(wàn)條。數(shù)據(jù)記錄包含字段有用戶寬帶賬號(hào)、用戶終端信息、用戶訪問(wèn)的URL。解析用戶的UA就是在包含用戶終端信息的字段中。這個(gè)字段的部分?jǐn)?shù)據(jù)如圖3所示。
(2)識(shí)別用戶終端UA的正則表達(dá)式文件。
這個(gè)文件中的正則表達(dá)式觀察用戶上網(wǎng)的源數(shù)據(jù)中包含用戶終端信息的字段,寫出能匹配出用戶UA的正則表達(dá)式。
4.3實(shí)驗(yàn)步驟
(1)創(chuàng)建用戶終端表。
create tablet_user_terminal_info (
username string,
ua string
dalvik/1.6.0(linux;u;android4.4.2;pe-tl10build/huaweipe-tl10)dalvik/1.6.0(linux;u;android4.4.2;huaweip7-l05build/huaweip7-l05)dalvik/1.6.0(linux;u;android4.4.4;coolpad8675-abuild/ktu84p)dalvik/2.1.0(linux;u;android5.1;m1metalbuild/lmy47i)dalvik/2.1.0(linux;u;android5.0.2;vivoy51abuild/lrx22g)qiyivideo/7.5(ios;com.qiyi.iphone;ios9.3.2;iphone6,2)dalvik/2.1.0(linux;u;android5.0.2;x600build/abxcnop5501304131s)
圖3 源數(shù)據(jù)的UA字段
)
row format delimited
fields terminated by ' ';
(2)將編寫解析UA的udf程序打成的jar包導(dǎo)到Hive的環(huán)境變量中。
addjar /home/shkd/20160418/udf/datamining-1.0-SNAPSHOT-jar-with-dependencies.jar;
(3)創(chuàng)造臨時(shí)函數(shù)uaparse,解析源數(shù)據(jù)中包含用戶終端UA的信息的字段。
create temporary functionuaparse as 'cn.com.runtrend.datamining.udf.UAParserUDF'
(4)在Hive腳本調(diào)用創(chuàng)建的臨時(shí)函數(shù),經(jīng)解析結(jié)構(gòu)存入t_user_terminal_info。
insert intot_user_terminal_info select username,uaparse (ua) from t_etlr_userinfo;
其中,t_etlr_userinfo為用戶上網(wǎng)源數(shù)據(jù)表。
(5)將解析UA中能代表用戶終端類型的字段與終端庫(kù)進(jìn)行匹配,獲取最終的終端類型。
4.4實(shí)驗(yàn)結(jié)果
t_user_terminal_info的部分內(nèi)容見表1。
表1 t_user_terminal_info的部分內(nèi)容
將解析的UA與終端庫(kù)進(jìn)行匹配,最后對(duì)類型進(jìn)行匯總,得到識(shí)別的不同終端類型數(shù)量,如圖4所示。
圖4 識(shí)別的終端類型數(shù)量
4.5實(shí)驗(yàn)評(píng)估
對(duì)于其他用戶終端,采用準(zhǔn)確率進(jìn)行評(píng)估。記各種終端的總樣本數(shù)為n,準(zhǔn)確識(shí)別的數(shù)量為m,識(shí)別終端的準(zhǔn)確率為c=m/n*100%。對(duì)于上面實(shí)驗(yàn)得到的識(shí)別準(zhǔn)確率如圖5所示。
圖5 識(shí)別的終端準(zhǔn)確率
最終識(shí)別的準(zhǔn)確率并不是非常高,這其中存在一些主要原因:
(1)爬蟲獲取的終端庫(kù)可能并不完整,導(dǎo)致有些識(shí)別的終端不能被匹配到;
(2)正則匹配的配置文件中,正則匹配表達(dá)式并不完善,從而導(dǎo)致識(shí)別的終端出錯(cuò)。
因此,正則表達(dá)式的配置文件和爬蟲的終端標(biāo)準(zhǔn)庫(kù)需要不斷更新,才能提高識(shí)別的準(zhǔn)確率。
通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),基于Hadoop/Hive集群可以實(shí)現(xiàn)對(duì)家庭固網(wǎng)寬帶下用戶終端信息的識(shí)別。Hadoop集群具有高可靠性、高拓展性、高容錯(cuò)性。為分析固網(wǎng)寬帶用戶提供了一種非常好的技術(shù)手段。利用Hadoop平臺(tái)更高效,對(duì)電信寬帶用戶能精準(zhǔn)挖掘有用信息,實(shí)現(xiàn)流量變現(xiàn)。另外,Hive提供SQL接口,利用SQL可以更方便地使用Hadoop,而且Hive還提供自定義函數(shù),避免了復(fù)雜的MapReduce程序的編寫,讓開發(fā)更簡(jiǎn)單。
[1] 張 引,陳 敏,廖小飛.大數(shù)據(jù)應(yīng)用的現(xiàn)狀與展望[J].計(jì)算機(jī)研究與發(fā)展,2013,50:216-233.
[2] 馮明麗,陳志彬.基于電信運(yùn)營(yíng)商的大數(shù)據(jù)解決方案分析[J].通信與信息技術(shù),2013(5):36-40.
[3] Baghel S K,Keshav K,Manepalli V R.An investigation into traffic analysis for diverse data applications on smartphones[C]//National conference on communications.[s.l.]:IEEE,2012:1-5.
[4] 陳 勇.大數(shù)據(jù)及其商業(yè)價(jià)值[J].通信與信息技術(shù),2013(1):59-60.
[5] 王研昊,馬媛媛,楊 明,等.基于隱性標(biāo)識(shí)符的零權(quán)限Android智能終端識(shí)別[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2015,45(6):1046-1050.
[6] Sagiroglu S,Sinanc D.Big data:a review[C]//International conference on collaboration technologies and systems.[s.l.]:IEEE,2013:42-47.
[7] 程 瑩,張?jiān)朴拢?雷,等.基于Hadoop及關(guān)系型數(shù)據(jù)庫(kù)的海量數(shù)據(jù)分析研究[J].電信科學(xué),2010,26(11):47-50.
[8] 梁其峰.WLAN終端識(shí)別技術(shù)研究[J].科技傳播,2013(18):186-188.
[9] Wu T,Xu Z,Ni L,et al.Towards a media fragment URI aware user agent[C]//Web information system and application conference.[s.l.]:IEEE,2014:37-42.
[10] La V H,Fuentes R,Cavalli A R.Network monitoring using MMT:an application based on the user-agent field in HTTP headers[C]//International conference on advanced information networking and applications.[s.l.]:[s.n.],2016:147-154.
[11] 何 莘,王琬蕪.自然語(yǔ)言檢索中的中文分詞技術(shù)研究進(jìn)展及應(yīng)用[J].情報(bào)科學(xué),2008,26(5):787-791.
[12] 徐 乾,鄂躍鵬,葛敬國(guó),等.深度包檢測(cè)中一種高效的正則表達(dá)式壓縮算法[J].軟件學(xué)報(bào),2009,20(8):2214-2226.
[13] Pal A,Agrawal S.An experimental approach towards big data for analyzing memory utilization on a hadoop cluster using HDFS and MapReduce[C]//International conference on networks & soft computing.[s.l.]:[s.n.],2014:442-447.
[14] White T.Hadoop權(quán)威指南[M].北京:清華大學(xué)出版社,2015.
[15] 劉 鵬,黃宜華,陳衛(wèi)衛(wèi).實(shí)戰(zhàn)Hadoop開啟通向云計(jì)算的捷徑[M].北京:電子工業(yè)出版社,2011.
[16] 謝 恒,王 梅,樂(lè)嘉錦,等.基于hive的計(jì)算結(jié)果特征提取與重用策略[J].計(jì)算機(jī)研究與發(fā)展,2015,52(9):2014-2024.
[17] Ganesh S,Binu A.Statistical analysis to determine the performance of multiple beneficiaries of educational sector using Hadoop-Hive[C]//International conference on data science & engineering.[s.l.]:IEEE,2014:32-37.
[18] Bhardwaj A,Vanraj,Kumar A,et al.Big data emerging technologies:a casestudy with analyzing twitter data using apache hive[C]//International conference on recent advances in engineering & computational sciences.[s.l.]:IEEE,2015:1-6.
ResearchandImplementationofTerminalIdentificationTechnologyofFixed-lineBroadbandBasedonHadoop
FAN Meng-ke,WANG Pan
(School of Internet of Things,Nanjing University of Posts and Telecommunications,Nanjing 210003,China)
With the coming of the era of big data,big data is more and more widely applied in various industries,which is also done in operators industry,but many technical problems are found simultaneously,of which family portraits of shaping is a core for operators of large data.How to extract and identify the terminal type of fixed-line broadband is a problem needed to be solved.Unlike mobile network,fixed-line broadband don’t take any accurate terminal information due to lack of signaling channel,so it is hard to conduct terminal type identification in fixed-line.The traditional method adopts UA fields of HTTP GET message parsing and matching for identification,but it is low in identification accuracy because of UA non-standardized and the large amounts of terminal number and varieties.Based on the Hadoop framework,the UDF of Hive is used,and combined with the distributed crawler for obtainment of terminal library,the user terminal information online is identified more quickly and accurately.According to the experiment,the accuracy of terminal identification can reach above 92%,a substantial increase compared with the traditional method.
terminal identification;Hadoop;User Defined Function (UDF);distributed crawler;fixed-line broadband;big data operations
2016-11-27
2017-03-29 < class="emphasis_bold">網(wǎng)絡(luò)出版時(shí)間
時(shí)間:2017-08-01
2015江蘇省產(chǎn)學(xué)研前瞻性聯(lián)合研究項(xiàng)目(BY2015011-02)
范孟可(1990-),男,碩士研究生,研究方向?yàn)榇髷?shù)據(jù)分析技術(shù)。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170801.1552.048.html
TP31
A
1673-629X(2017)11-0171-05
10.3969/j.issn.1673-629X.2017.11.037