亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法

文檔序號(hào):7820393閱讀:671來源:國(guó)知局
一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法【專利摘要】本發(fā)明公開了一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,利用高速捕包工具PF_RING抓取網(wǎng)絡(luò)入口的數(shù)據(jù)作為用戶行為分析的數(shù)據(jù)源,并將其分布式存儲(chǔ),然后調(diào)用網(wǎng)絡(luò)安全開發(fā)包工具Libnids對(duì)數(shù)據(jù)包進(jìn)行重組,實(shí)現(xiàn)TCP/IP的重組,實(shí)現(xiàn)應(yīng)用層HTTP還原,然后調(diào)用Hadoop集群,利用分布式Mapreduce編程來分析出用戶應(yīng)用層的網(wǎng)絡(luò)行為活動(dòng),實(shí)現(xiàn)從物理層到應(yīng)用層的全層分析,從用戶的搜索詞、購(gòu)物趨向、網(wǎng)站留言和常規(guī)網(wǎng)站行為四個(gè)維度對(duì)用戶進(jìn)行全面的定位,及時(shí)了解用戶行為和需求,進(jìn)而策略管控用戶行為和優(yōu)化網(wǎng)絡(luò)服務(wù),實(shí)現(xiàn)網(wǎng)絡(luò)智能化?!緦@f明】—種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法【
技術(shù)領(lǐng)域
】[0001]本發(fā)明涉及用戶行為分析領(lǐng)域,具體涉及一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法?!?br>背景技術(shù)
】[0002]我們生活在數(shù)據(jù)時(shí)代,隨著網(wǎng)絡(luò)的廣泛應(yīng)用、社交網(wǎng)絡(luò)的繁榮以及用戶數(shù)量的急劇增長(zhǎng),數(shù)據(jù)也以爆炸式的方式增長(zhǎng)。我們進(jìn)入了大數(shù)據(jù)時(shí)代,美國(guó)互聯(lián)網(wǎng)數(shù)據(jù)中心指出,網(wǎng)絡(luò)上的數(shù)據(jù)每年將增長(zhǎng)50%,每?jī)赡陮⒎槐叮壳笆澜缟?0%以上的數(shù)據(jù)是近幾年才產(chǎn)生的。而且,數(shù)據(jù)又并非僅僅指人們?cè)诨ヂ?lián)網(wǎng)上發(fā)布的內(nèi)容信息,全世界的電表、汽車、工業(yè)設(shè)備上有著無數(shù)的數(shù)碼傳感器,隨時(shí)測(cè)量和傳遞著有關(guān)位置、濕度、溫度、運(yùn)動(dòng)、震動(dòng)的變化,也產(chǎn)生了海量的數(shù)據(jù)信息。移動(dòng)互連、物聯(lián)網(wǎng)、云計(jì)算、社交網(wǎng)絡(luò)、Web的快速發(fā)展讓數(shù)據(jù)前所未有的增長(zhǎng),并且越發(fā)集中,這種集中的趨勢(shì)也將一直持續(xù)。海量數(shù)據(jù)中,必然蘊(yùn)含著巨大的價(jià)值。[0003]Libnids是一個(gè)用于網(wǎng)絡(luò)入侵檢測(cè)開發(fā)的專業(yè)編程接口,它使用了Libpcap所以它具有捕獲數(shù)據(jù)包的功能。同時(shí),Libnids提供了TCP數(shù)據(jù)流重組功能,所以對(duì)于分析基于TCP協(xié)議的各種協(xié)議Libnids都能勝任.Libnids還提供了對(duì)IP分片進(jìn)行重組的功能,以及端口掃描檢測(cè)和異常數(shù)據(jù)包檢測(cè)功能?!?br/>發(fā)明內(nèi)容】[0004]本發(fā)明要解決的技術(shù)問題是:本發(fā)明是基于區(qū)域內(nèi)用戶的網(wǎng)絡(luò)行為分析,特別是網(wǎng)內(nèi)所有用戶的Web行為分析,而不是僅僅局限于某Web網(wǎng)站的用戶行為分析。而目前,大部分網(wǎng)絡(luò)應(yīng)用是基于TCP/IP協(xié)議之上。在這種大背景下,傳統(tǒng)網(wǎng)管的網(wǎng)絡(luò)質(zhì)量指標(biāo)和分析方法并不能準(zhǔn)確的反映用戶的行為信息。大部分傳統(tǒng)的分析方法只能解析出從物理層到傳輸層的五元組信息,而不能還原出應(yīng)用層的內(nèi)容,而恰恰用戶的行為信息主要包含在應(yīng)用層。這就需要在大數(shù)據(jù)環(huán)境下對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行應(yīng)用層協(xié)議重組。大數(shù)據(jù)環(huán)境下進(jìn)行TCP重組工作,涉及TCP的分片序號(hào)問題、TCP分片重復(fù)問題,這些問題給實(shí)際的工作造成了很大的麻煩,使開發(fā)流程更加復(fù)雜,延長(zhǎng)了開發(fā)周期。釆用Libnids和Hadoop集群的模式,減少了整個(gè)流程的復(fù)雜度,Libnids可以減輕開發(fā)人員對(duì)TCP重組的工作量,而Hadoop集群利用分布式的優(yōu)點(diǎn)來并行處理任務(wù),更進(jìn)一步壓縮了發(fā)時(shí)間,增加了經(jīng)濟(jì)效益。這樣就可以對(duì)應(yīng)用層協(xié)議進(jìn)行還原,進(jìn)而得到網(wǎng)絡(luò)服務(wù)器和網(wǎng)絡(luò)用戶的網(wǎng)絡(luò)行為、會(huì)話內(nèi)容以及網(wǎng)絡(luò)擁塞或者癱瘓的原因。同時(shí),可以優(yōu)化網(wǎng)絡(luò)環(huán)境,通過內(nèi)容還原可以限制非法行為,可以了解網(wǎng)絡(luò)資源的分布使用情況,推動(dòng)下一代互聯(lián)網(wǎng)的發(fā)展。[0005]本發(fā)明所采用的技術(shù)方案為:一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,利用高速捕包工具PF_RING抓取網(wǎng)絡(luò)入口的數(shù)據(jù)作為用戶行為分析的數(shù)據(jù)源,并將其分布式存儲(chǔ),然后調(diào)用網(wǎng)絡(luò)安全開發(fā)包工具Libnids對(duì)數(shù)據(jù)包進(jìn)行重組,實(shí)現(xiàn)TCP/IP的重組,實(shí)現(xiàn)應(yīng)用層HTTP還原,然后調(diào)用Hadoop集群,利用分布式Mapreduce編程來分析出用戶應(yīng)用層的網(wǎng)絡(luò)行為活動(dòng),實(shí)現(xiàn)從物理層到應(yīng)用層的全層分析,從用戶的搜索詞、購(gòu)物趨向、網(wǎng)站留言和常規(guī)網(wǎng)站行為四個(gè)維度對(duì)用戶進(jìn)行全面的定位,及時(shí)了解用戶行為和需求,進(jìn)而策略管控用戶行為和優(yōu)化網(wǎng)絡(luò)服務(wù),實(shí)現(xiàn)網(wǎng)絡(luò)智能化。[0006]所述方法所涉及的基于Hadoop用戶行為分析系統(tǒng)包括:I)數(shù)據(jù)采集模塊、2)TCP重組模塊、3)Hadoop集群分析模塊、4)可視化模塊,其中:1)數(shù)據(jù)采集模塊,負(fù)責(zé)數(shù)據(jù)包捕獲基于PF_RING的實(shí)現(xiàn),基于PF_RING減少了拷貝次數(shù)和CPU中斷次數(shù),能夠極大地節(jié)省數(shù)據(jù)必要拷貝過程中占用的系統(tǒng)內(nèi)存,極大地增強(qiáng)系統(tǒng)的數(shù)據(jù)包捕獲效能力,解決了頻繁的網(wǎng)絡(luò)中斷、系統(tǒng)調(diào)用和多次內(nèi)存拷貝等問題,從而提高內(nèi)核處理數(shù)據(jù)包效率;2)TCP重組模塊,負(fù)責(zé)重組完成與TCP/IP協(xié)議棧類似的過程,涉及到數(shù)據(jù)包的順序重組、數(shù)掘包的重復(fù)別除流程,采用網(wǎng)絡(luò)安全發(fā)包工具Libnids來進(jìn)行重組過程;3)Hadoop集群分析模塊,負(fù)責(zé)基于Mapreduce框架下對(duì)HTTP協(xié)議還原技術(shù)實(shí)現(xiàn):hadoop對(duì)用戶的HTTP行為進(jìn)行解析還原,并且提供長(zhǎng)期跟蹤用戶行為的功能,用Mapreduce框架來分析用戶的HTTP行為,用數(shù)據(jù)倉(cāng)庫(kù)Hive來存儲(chǔ)分析日志以達(dá)到長(zhǎng)期跟蹤用戶行為的目的;4)可視化模塊,負(fù)責(zé)對(duì)行為分析模塊的輸出進(jìn)行可視化展示。[0007]所述方法所涉及的用戶行為分析系統(tǒng)平臺(tái)拓?fù)溆蒆adoop集群和Libnids集群兩部分組成,其中Hadoop集群包含I個(gè)高配置的Namenode和三臺(tái)數(shù)據(jù)節(jié)點(diǎn)Datanode,Libnids包含3個(gè)用于TCP重組的節(jié)點(diǎn),三個(gè)Datanode有兩種功能,一種功能用于利用PF_RING抓取鏡像用戶的網(wǎng)絡(luò)數(shù)據(jù)包,并且將數(shù)據(jù)包存放在分布式集群中;另一種功能是作為Hadoop分布式集群的數(shù)據(jù)存儲(chǔ)和計(jì)算節(jié)點(diǎn)分析還原用戶的網(wǎng)絡(luò)行為;而Libnids集群中的三個(gè)節(jié)點(diǎn)用來對(duì)用戶數(shù)據(jù)包進(jìn)行TCP重組,數(shù)據(jù)源來自于存儲(chǔ)在Hadoop集群中的pcap文件,然后將分析日志再存放在Hadoop集群中,供后期的Mapreduce計(jì)算。[0008]所述方法流程為:數(shù)據(jù)采集模塊的PF_RING節(jié)點(diǎn)對(duì)鏡像交換機(jī)進(jìn)行數(shù)據(jù)鏡像,以pcap文件存儲(chǔ)到Hadoop集群的分布式文件系統(tǒng)HDFS上,然后TCP重組模塊的Libnids節(jié)點(diǎn)從HDFS中請(qǐng)求需要重組的數(shù)據(jù)包,經(jīng)過Libnids集群的重組,形成日志存入HDFS中,然后調(diào)用Hadoop集群分析模塊,利用Mapreduce框架來解析還原日志內(nèi)容,分析用戶的HTTP行為,得出行為分析結(jié)果,最后可視化模塊對(duì)集群分析模塊輸出的數(shù)據(jù)進(jìn)行可視化展/Jnο[0009]所述數(shù)據(jù)包捕獲流程為:pfring*s-pfring_open(device_name,promise);//套接字創(chuàng)建、綁定內(nèi)存映身寸intrc二pfringsetduster(s,clusterId);//將套接字插入ring—cluster—list中if(pfring_recv(s,(char傘)buffer,siezeof(buffer)y&hdr,wait_for_packet)>0)//接收數(shù)據(jù)pfring^close(s)。[0010]所述PF—RING存儲(chǔ)分布式化開發(fā)過程為:文件存儲(chǔ)到HDFS上首先連接HDFS的根節(jié)點(diǎn)Namenode,調(diào)用HDFSComiect方法,輸入根節(jié)點(diǎn)相應(yīng)的IP地址和端口號(hào),建立HDFS鏈接;然后創(chuàng)建數(shù)據(jù)流文件,調(diào)用HDFSOpenFile函數(shù),創(chuàng)建流文件;系統(tǒng)自動(dòng)檢測(cè)是否有重名文件,若不同則創(chuàng)建文件成功;然后調(diào)用HDFSAPI中的HDFSWrite函數(shù),進(jìn)行流文件的寫入;隨著文件漸漸增大,當(dāng)超過一定閥值時(shí),根節(jié)點(diǎn)Namenode會(huì)自動(dòng)對(duì)文件進(jìn)行分塊存儲(chǔ),按照相應(yīng)策略分到不同的數(shù)據(jù)節(jié)點(diǎn)Datanode上;最后斷開連接,關(guān)閉輸入流。[0011]所述利用Mapreduce框架來解析還原日志內(nèi)容過程為:在Mapreduce程序中,在Map階段對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,去除字段不完整的記錄,拆分字段,開始匹配各個(gè)搜索引擎Host字段,然后根據(jù)各個(gè)搜索引擎的特點(diǎn),進(jìn)行相應(yīng)的解碼;這樣能夠進(jìn)行多個(gè)業(yè)務(wù)的輸出,還能夠得出全網(wǎng)所有用戶的關(guān)鍵詞組,Map階段用戶ID作為key,解析出的搜索詞作為value,在Reduce階段,接受(用戶ID,list{搜索關(guān)鍵詞}),Reduce階段的輸出key設(shè)為用戶ID,輸出value設(shè)為關(guān)鍵詞串(關(guān)鍵詞之間用_分割);這樣最后輸出格式就是:“用戶ID搜索詞1_搜索詞2@#......”,這樣就把所有用戶的搜索詞都給還原出來,得出全網(wǎng)的關(guān)鍵詞詞組把它進(jìn)行分詞并且去除停詞,做出詞云,這樣就可以對(duì)全網(wǎng)用戶搜索詞進(jìn)行宏觀性的掌控,也能夠針對(duì)每個(gè)用戶做這樣的宏觀性掌控。[0012]本發(fā)明有益效果:利用Hadoop集群的優(yōu)勢(shì)將抓取的大規(guī)??蛻粜袨閿?shù)據(jù)流的計(jì)算分配到多個(gè)節(jié)點(diǎn)上并行處理,縮短了數(shù)據(jù)處理時(shí)間。TCP重組把網(wǎng)絡(luò)會(huì)話中包含的數(shù)據(jù)包進(jìn)行重新組合,把同一會(huì)話的數(shù)據(jù)包給重組起來,主要解決處理重傳、丟包、亂序等情況,使數(shù)據(jù)包按照正確的順序?qū)⑵渲械姆侄位蛘叻制M(jìn)行重組。利用Hadoop集群來分析HTTP協(xié)議,得到用戶的搜索關(guān)鍵詞、用戶購(gòu)物趨向、用戶發(fā)帖留S和瀏覽網(wǎng)站等信息,全面提取用戶的行為數(shù)據(jù),并利用基于Mapreduce編程框架對(duì)應(yīng)用層數(shù)據(jù)進(jìn)行還原分析,且將分析的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中,能夠長(zhǎng)期跟蹤定位用戶行為信息,對(duì)大數(shù)據(jù)環(huán)境下用戶行為分析,具有很大的現(xiàn)實(shí)意義?!緦@綀D】【附圖說明】[0013]圖1為本發(fā)明Hadoop集群分析模塊結(jié)構(gòu)示意圖;圖2為本發(fā)明系統(tǒng)平臺(tái)拓?fù)鋱D;圖3為本發(fā)明重組示意圖;圖4為本發(fā)明Libnids工作流程圖?!揪唧w實(shí)施方式】[0014]下面根據(jù)說明書附圖,結(jié)合具體實(shí)施例,對(duì)本發(fā)明進(jìn)一步說明:一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,采用了當(dāng)前熱門的大數(shù)據(jù)處理平臺(tái)hadoop技術(shù),實(shí)現(xiàn)基于Hadoop的用戶行為分析方法,首先利用高速捕包工具PF_RING抓取網(wǎng)絡(luò)入口的數(shù)據(jù)作為用戶行為分析的數(shù)據(jù)源,并將其分布式存儲(chǔ),然后調(diào)用網(wǎng)絡(luò)安全開發(fā)包工具Libnids對(duì)數(shù)據(jù)包進(jìn)行重組,實(shí)現(xiàn)TCP/IP的重組,實(shí)現(xiàn)應(yīng)用層HTTP還原,然后調(diào)用Hadoop集群,利用分布式Mapreduce編程來分析出用戶應(yīng)用層的網(wǎng)絡(luò)行為活動(dòng),實(shí)現(xiàn)從物理層到應(yīng)用層的全層分析,從用戶的搜索詞、購(gòu)物趨向、網(wǎng)站留言和常規(guī)網(wǎng)站行為四個(gè)維度對(duì)用戶進(jìn)行全面的定位,及時(shí)了解用戶行為和需求,進(jìn)而策略管控用戶行為和優(yōu)化網(wǎng)絡(luò)服務(wù),實(shí)現(xiàn)網(wǎng)絡(luò)智能化。[0015]如圖2所示,所述方法所涉及的用戶行為分析系統(tǒng)平臺(tái)拓?fù)溆蒆adoop集群和Libnids集群兩部分組成,其中Hadoop集群包含I個(gè)高配置的Namenode和三臺(tái)數(shù)據(jù)節(jié)點(diǎn)Datanode,Libnids包含3個(gè)用于TCP重組的節(jié)點(diǎn),三個(gè)Datanode有兩種功能,一種功能用于利用PF_RING抓取鏡像用戶的網(wǎng)絡(luò)數(shù)據(jù)包,并且將數(shù)據(jù)包存放在分布式集群中;另一種功能是作為Hadoop分布式集群的數(shù)據(jù)存儲(chǔ)和計(jì)算節(jié)點(diǎn)分析還原用戶的網(wǎng)絡(luò)行為;而Libnids集群中的三個(gè)節(jié)點(diǎn)用來對(duì)用戶數(shù)據(jù)包進(jìn)行TCP重組,數(shù)據(jù)源來自于存儲(chǔ)在Hadoop集群中的pcap文件,然后將分析日志再存放在Hadoop集群中,供后期的Mapreduce計(jì)算。[0016]所述方法流程為:數(shù)據(jù)采集模塊的PF_RING節(jié)點(diǎn)對(duì)鏡像交換機(jī)進(jìn)行數(shù)據(jù)鏡像,以pcap文件存儲(chǔ)到Hadoop集群的分布式文件系統(tǒng)HDFS上,然后TCP重組模塊的Libnids節(jié)點(diǎn)從HDFS中請(qǐng)求需要重組的數(shù)據(jù)包,經(jīng)過Libnids集群的重組,形成日志存入HDFS中,然后調(diào)用Hadoop集群分析模塊,利用Mapreduce框架來解析還原日志內(nèi)容,分析用戶的HTTP行為,得出行為分析結(jié)果,最后可視化模塊對(duì)集群分析模塊輸出的數(shù)據(jù)進(jìn)行可視化展/Jnο[0017]其中:PF-RING開發(fā)接口函數(shù):PF—RING實(shí)現(xiàn)了使用PF_RING協(xié)議族的函數(shù)庫(kù)Iibpfring;另外PF—RING在Iibpcap基礎(chǔ)上增加了PF—RING補(bǔ)丁,對(duì)Iibpcap套接字層的函數(shù)進(jìn)行了重新封裝,進(jìn)行了二次開發(fā),避免Iibpcap直接與內(nèi)核模塊直接交互;支持PF—RING協(xié)議族的Libpcap稱之為libpcap-ring,libpcap-ring是基于Iibpfring庫(kù)函數(shù);使用PF-RING協(xié)議族進(jìn)行網(wǎng)絡(luò)編程通信;Libpfring庫(kù)屏蔽了底層細(xì)節(jié),可以使用戶透明訪問PF—RINGsockets,其實(shí)現(xiàn)主文件為pfring.c;Libpfring主要的功能函數(shù)有以下幾個(gè):(a)ring—initO函數(shù)。實(shí)現(xiàn)PF—RING各項(xiàng)參數(shù)的初始化工作,其中包括PFJUNG協(xié)議域的注冊(cè),ringtable、ringclusterlist、ringawaredevice—list、ring_dna_devices_list四個(gè)鏈表的初始化。[0018](b)pfring—open()。函數(shù)原型為pfring*pfring_open(char*device_name,u_int8_tpromise,u_int32_tcaplen,u_int8_treentrant)。其中device—name為我們嘗試打的設(shè)備名稱;promise為網(wǎng)絡(luò)接口的模式控制,分為promise模式和混雜模式;caplen為包最長(zhǎng)捕獲長(zhǎng)度!reentrant用于多線程模式的設(shè)定。函數(shù)調(diào)用用于初始化一個(gè)PF_RING套接字,獲得pfring結(jié)構(gòu)的句柄供后續(xù)調(diào)用,同時(shí)打網(wǎng)絡(luò)接口。[0019]工作流程為:(I)中請(qǐng)并初始化一個(gè)pfring結(jié)構(gòu)指針變量ring;(2)調(diào)用socket建立一個(gè)PF—RING類型的socket,并將PF—RINGsocket對(duì)應(yīng)的文件句柄賦值給ring->fd;(3)調(diào)用bindO函數(shù)將socket綁定到本地網(wǎng)卡上;(4)為socket分配環(huán)狀緩布,通過minapO函數(shù)完成ring->buffeiT與內(nèi)核環(huán)狀緩存的映射;(5)初始化ring->sfots_info的各項(xiàng)信息等;(6)設(shè)置網(wǎng)卡混雜模式。[0020](c)pfring_recvO。函數(shù)原型為:intpfring—recv(pfiing*ring,char*buffer,u—intbuffer—len,structpfring_pkthdr氺hdr,u_charwait_for_incoming_packet)°其中ring為PR—RING文件句柄;buffer為函數(shù)調(diào)用分配的內(nèi)存區(qū)域,用于零拷貝的實(shí)現(xiàn);buffer_len為上面buffer的內(nèi)存大??;hdr為數(shù)據(jù)包頭復(fù)制的內(nèi)存區(qū)域;wait—for一incoming一packet若設(shè)為O,我們僅僅檢查可得的數(shù)據(jù)包,否則調(diào)用將被阻塞直到新的數(shù)據(jù)包到來。函數(shù)讀取輸入的數(shù)據(jù)包,是實(shí)現(xiàn)數(shù)據(jù)包捕獲的主函數(shù)。當(dāng)有數(shù)據(jù)包時(shí),該函數(shù)返回一個(gè)輸入數(shù)據(jù)包,接受的數(shù)據(jù)包存儲(chǔ)在了調(diào)用者分配的一個(gè)內(nèi)存區(qū)域。[0021](d)pfring_closeO。函數(shù)用于關(guān)閉PF—RING套接字。[0022]利用這些基本函數(shù)基本的捕獲數(shù)據(jù)包流程為:pfring*s=pfring_open(device_name,promise);//套接字創(chuàng)建、綁定內(nèi)存映身才intrc=pfringsetduster(s,clusterld);//將套接字插入ring_cluster_list中if(pfring_recv(s,(char*)buffer,siezeof(buffer),&hdr,wait_for_packet)>0)//接收數(shù)據(jù)pfring~close(s);為了應(yīng)對(duì)大數(shù)據(jù)集存儲(chǔ)的情況,很有必要對(duì)PF—RING進(jìn)行二次開發(fā),使其與分布式文件系統(tǒng)相對(duì)接。為了避免頻繁讀寫HDFS接口而造成的系統(tǒng)性能下降,將PF—RING功能分為兩大部分,一部分是前期的數(shù)據(jù)流文件組裝,所有數(shù)據(jù)流都組裝成一個(gè)大文件,當(dāng)達(dá)到一定規(guī)模了再投射到分布式HDFS中。[0023]所述PF_RING存儲(chǔ)分布式化開發(fā)過程為:文件存儲(chǔ)到HDFS上首先連接HDFS的根節(jié)點(diǎn)Namenode,調(diào)用HDFSComiect方法,輸入根節(jié)點(diǎn)相應(yīng)的IP地址和端口號(hào),建立HDFS鏈接;然后創(chuàng)建數(shù)據(jù)流文件,調(diào)用HDFSOpenFile函數(shù),創(chuàng)建流文件;系統(tǒng)自動(dòng)檢測(cè)是否有重名文件,若不同則創(chuàng)建文件成功;然后調(diào)用HDFSAPI中的HDFSWrite函數(shù),進(jìn)行流文件的寫入;隨著文件漸漸增大,當(dāng)超過一定閥值(配置文件設(shè)定)時(shí),根節(jié)點(diǎn)Namenode會(huì)自動(dòng)對(duì)文件進(jìn)行分塊存儲(chǔ),按照相應(yīng)策略分到不同的數(shù)據(jù)節(jié)點(diǎn)Datanode上;最后斷開連接,關(guān)閉輸入流。[0024]偽代碼如下:fs二HDFSConnect1n(IP,Port);//創(chuàng)建HDFS連接if(3xist(DataStreamFile.FiIeName)==0){//文件不存在情況fp二HDFSOpenFile(fs,DataStreamFile.FileName,size);HDFSVrite(fp,DataSteamFile,O);//數(shù)據(jù)流寫入文件中}else{//文件已經(jīng)存在fp二HDFSOpenFile(fs,DataStreamFile.FileName,size);HDFSWrite(fp,DataSteamFile,I);//!代表數(shù)據(jù)流以追加的方式保存到文件中}HDFSCloseFile(fs,fp);//關(guān)閉指針HDFSDisconnect(fs);//斷開連接在數(shù)據(jù)采集模塊,用戶的網(wǎng)絡(luò)數(shù)據(jù)包被保存成了.pcap格式文件,并存儲(chǔ)到分布式文件系統(tǒng)HDFS中或者本地供后續(xù)處理,為實(shí)現(xiàn)用戶的流量分析及用戶網(wǎng)絡(luò)內(nèi)容還原分析奠定了基礎(chǔ)。[0025]如圖3所示,TCP重組模塊是處理大量用戶數(shù)據(jù)包(.pcap文件),生成大量日志文件的過程。IP和TCP重組需要完成與TCP/IP協(xié)議棧類似的過程,這是一個(gè)特別復(fù)雜的過程,其中涉及到數(shù)據(jù)包的順序重組、數(shù)掘包的重復(fù)別除等復(fù)雜流程,采用網(wǎng)絡(luò)安全發(fā)包工具Libnids來進(jìn)行重組過程,簡(jiǎn)化了復(fù)雜度。[0026]Libnids是在Iibnet和Iibpcap基礎(chǔ)上開發(fā)的,對(duì)底層細(xì)節(jié)進(jìn)行了封裝、應(yīng)用,只需要調(diào)用簡(jiǎn)單的API接口就可以完成網(wǎng)絡(luò)數(shù)據(jù)包的還原,如圖4所示。[0027]Hadoop集群分析模塊:在Hadoop環(huán)境下用戶行為分析的方法,一共分為四個(gè)部分,搜索關(guān)鍵詞、購(gòu)物趨向、網(wǎng)站發(fā)帖留言和網(wǎng)站瀏覽信息。從這四個(gè)維度來定位用戶網(wǎng)絡(luò)中的行為。進(jìn)而可以分析出個(gè)別非法犯罪行為,并長(zhǎng)期跟蹤用戶,只要這四個(gè)方向中任意一個(gè)方向有異常行為,就標(biāo)記該用戶ID(暫定為IP),然后查詢?cè)撚脩鬒D在這四個(gè)方向的所有行為信息,從而從搜索行為、購(gòu)物趨向行為、網(wǎng)站發(fā)帖留言行為和網(wǎng)站瀏覽行為四個(gè)維度來全局定位用戶的網(wǎng)絡(luò)行為。[0028]如圖1所示,在Hadoop集群分析模塊中,所述利用Mapreduce框架來解析還原日志內(nèi)容過程為:對(duì)應(yīng)各個(gè)不同搜索引擎的特點(diǎn),需要在Hadoop編程框架Mapreduce中匹配對(duì)應(yīng)搜索引擎并采用對(duì)應(yīng)方法分析。在Mapreduce程序中,在Map階段對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,去除字段不完整的記錄,拆分字段,開始匹配各個(gè)搜索引擎Host字段,然后根據(jù)各個(gè)搜索引擎的特點(diǎn),進(jìn)行相應(yīng)的解碼;這樣可以進(jìn)行多個(gè)業(yè)務(wù)的輸出,比如可以提前設(shè)定黑名單詞庫(kù),在Map階段解析出的搜索關(guān)鍵詞與黑名單詞庫(kù)的詞進(jìn)行匹配,匹配成功的就以用戶ID為key,關(guān)鍵詞作為Value,Reduce階段用戶ID作為key,所有關(guān)鍵詞(之間用”分割)作為value。這樣就能得出與提前設(shè)定黑名單詞庫(kù)相關(guān)的搜索詞的用戶。還可以得出全網(wǎng)所有用戶的關(guān)鍵詞組,Map階段用戶ID作為key,解析出的搜索詞作為value,在Reduce階段,接受(用戶ID,list{搜索關(guān)鍵詞}),Reduce階段的輸出key設(shè)為用戶ID,輸出value設(shè)為關(guān)鍵詞串(關(guān)鍵詞之間用挪分割);這樣最后輸出格式就是:“用戶ID搜索詞1_搜索詞2_......”,這樣就把所有用戶的搜索詞都給還原出來,得出全網(wǎng)的關(guān)鍵詞詞組把它進(jìn)行分詞并且去除停詞,做出詞云,這樣就可以對(duì)全網(wǎng)用戶搜索詞進(jìn)行宏觀性的掌控,也可以針對(duì)每個(gè)用戶做這樣的宏觀性掌控?!緳?quán)利要求】1.一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,其特征在于:利用高速捕包工具PF_RING抓取網(wǎng)絡(luò)入口的數(shù)據(jù)作為用戶行為分析的數(shù)據(jù)源,并將其分布式存儲(chǔ),然后調(diào)用網(wǎng)絡(luò)安全開發(fā)包工具Libnids對(duì)數(shù)據(jù)包進(jìn)行重組,實(shí)現(xiàn)TCP/IP的重組,實(shí)現(xiàn)應(yīng)用層HTTP還原,然后調(diào)用Hadoop集群,利用分布式Mapreduce編程來分析出用戶應(yīng)用層的網(wǎng)絡(luò)行為活動(dòng),實(shí)現(xiàn)從物理層到應(yīng)用層的全層分析,從用戶的搜索詞、購(gòu)物趨向、網(wǎng)站留言和常規(guī)網(wǎng)站行為四個(gè)維度對(duì)用戶進(jìn)行全面的定位,及時(shí)了解用戶行為和需求,進(jìn)而策略管控用戶行為和優(yōu)化網(wǎng)絡(luò)服務(wù),實(shí)現(xiàn)網(wǎng)絡(luò)智能化。2.根據(jù)權(quán)利要求1所述的一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,其特征在于,所述方法所涉及的基于Hadoop用戶行為分析系統(tǒng)包括:I)數(shù)據(jù)采集模塊、2)TCP重組模塊、3)Hadoop集群分析模塊、4)可視化模塊,其中:1)數(shù)據(jù)采集模塊,負(fù)責(zé)數(shù)據(jù)包捕獲基于PF_RING的實(shí)現(xiàn),基于PF_RING減少了拷貝次數(shù)和CPU中斷次數(shù),能夠極大地節(jié)省數(shù)據(jù)必要拷貝過程中占用的系統(tǒng)內(nèi)存,極大地增強(qiáng)系統(tǒng)的數(shù)據(jù)包捕獲效能力,解決了頻繁的網(wǎng)絡(luò)中斷、系統(tǒng)調(diào)用和多次內(nèi)存拷貝等問題,從而提高內(nèi)核處理數(shù)據(jù)包效率;2)TCP重組模塊,負(fù)責(zé)重組完成與TCP/IP協(xié)議棧類似的過程,涉及到數(shù)據(jù)包的順序重組、數(shù)掘包的重復(fù)別除流程,采用網(wǎng)絡(luò)安全發(fā)包工具Libnids來進(jìn)行重組過程;3)Hadoop集群分析模塊,負(fù)責(zé)基于Mapreduce框架下對(duì)HTTP協(xié)議還原技術(shù)實(shí)現(xiàn):hadoop對(duì)用戶的HTTP行為進(jìn)行解析還原,并且提供長(zhǎng)期跟蹤用戶行為的功能,用Mapreduce框架來分析用戶的HTTP行為,用數(shù)據(jù)倉(cāng)庫(kù)Hive來存儲(chǔ)分析日志以達(dá)到長(zhǎng)期跟蹤用戶行為的目的;4)可視化模塊,負(fù)責(zé)對(duì)行為分析模塊的輸出進(jìn)行可視化展示。3.根據(jù)權(quán)利要求1或2所述的一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,其特征在于,所述方法所涉及的用戶行為分析系統(tǒng)平臺(tái)拓?fù)溆蒆adoop集群和Libnids集群兩部分組成,其中Hadoop集群包含I個(gè)高配置的Namenode和三臺(tái)數(shù)據(jù)節(jié)點(diǎn)Datanode,Libnids包含3個(gè)用于TCP重組的節(jié)點(diǎn),三個(gè)Datanode有兩種功能,一種功能用于利用PF_RING抓取鏡像用戶的網(wǎng)絡(luò)數(shù)據(jù)包,并且將數(shù)據(jù)包存放在分布式集群中;另一種功能是作為Hadoop分布式集群的數(shù)據(jù)存儲(chǔ)和計(jì)算節(jié)點(diǎn)分析還原用戶的網(wǎng)絡(luò)行為;而Libnids集群中的三個(gè)節(jié)點(diǎn)用來對(duì)用戶數(shù)據(jù)包進(jìn)行TCP重組,數(shù)據(jù)源來自于存儲(chǔ)在Hadoop集群中的pcap文件,然后將分析日志再存放在Hadoop集群中,供后期的Mapreduce計(jì)算。4.根據(jù)權(quán)利要求1或2所述的一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,其特征在于,所述方法流程為:數(shù)據(jù)采集模塊的PF_RING節(jié)點(diǎn)對(duì)鏡像交換機(jī)進(jìn)行數(shù)據(jù)鏡像,以pcap文件存儲(chǔ)到Hadoop集群的分布式文件系統(tǒng)HDFS上,然后TCP重組模塊的Libnids節(jié)點(diǎn)從HDFS中請(qǐng)求需要重組的數(shù)據(jù)包,經(jīng)過Libnids集群的重組,形成日志存入HDFS中,然后調(diào)用Hadoop集群分析模塊,利用Mapreduce框架來解析還原日志內(nèi)容,分析用戶的HTTP行為,得出行為分析結(jié)果,最后可視化模塊對(duì)集群分析模塊輸出的數(shù)據(jù)進(jìn)行可視化展/Jnο5.根據(jù)權(quán)利要求1或2所述的一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,其特征在于,所述數(shù)據(jù)包捕獲流程為:pfring*s-pfring_open(device_name,promise);//套接字創(chuàng)建、綁定內(nèi)存映身寸intrc=pfringsetduster(s,clusterld);//將套接字插入ring_cluster_list中if(pfring_recv(s,(char*)buffer,siezeof(buffer),&hdr,wait_for_packet)>0)//接收數(shù)據(jù)pfring~close(s)。6.根據(jù)權(quán)利要求5所述的一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,其特征在于,所述PF_RING存儲(chǔ)分布式化開發(fā)過程為:文件存儲(chǔ)到HDFS上首先連接HDFS的根節(jié)點(diǎn)Namenode,調(diào)用HDFSComiect方法,輸入根節(jié)點(diǎn)相應(yīng)的IP地址和端口號(hào),建立HDFS鏈接;然后創(chuàng)建數(shù)據(jù)流文件,調(diào)用HDFSOpenFile函數(shù),創(chuàng)建流文件;系統(tǒng)自動(dòng)檢測(cè)是否有重名文件,若不同則創(chuàng)建文件成功;然后調(diào)用HDFSAPI中的HDFSWrite函數(shù),進(jìn)行流文件的寫入;隨著文件漸漸增大,當(dāng)超過一定閥值時(shí),根節(jié)點(diǎn)Namenode會(huì)自動(dòng)對(duì)文件進(jìn)行分塊存儲(chǔ),按照相應(yīng)策略分到不同的數(shù)據(jù)節(jié)點(diǎn)Datanode上;最后斷開連接,關(guān)閉輸入流。7.根據(jù)權(quán)利要求4所述的一種基于Hadoop用戶行為分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法,其特征在于,所述利用Mapreduce框架來解析還原日志內(nèi)容過程為:在Mapreduce程序中,在Map階段對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,去除字段不完整的記錄,拆分字段,開始匹配各個(gè)搜索引擎Host字段,然后根據(jù)各個(gè)搜索引擎的特點(diǎn),進(jìn)行相應(yīng)的解碼;這樣能夠進(jìn)行多個(gè)業(yè)務(wù)的輸出,還能夠得出全網(wǎng)所有用戶的關(guān)鍵詞組,Map階段用戶ID作為key,解析出的搜索詞作為value,在Reduce階段,接受(用戶ID,list{搜索關(guān)鍵詞}),Reduce階段的輸出key設(shè)為用戶ID,輸出value設(shè)為關(guān)鍵詞串,關(guān)鍵詞之間用_分割;這樣最后輸出格式就是:“用戶ID搜索詞1挪搜索詞2@#......”,這樣就把所有用戶的搜索詞都給還原出來,得出全網(wǎng)的關(guān)鍵詞詞組把它進(jìn)行分詞并且去除停詞,做出詞云,這樣就可以對(duì)全網(wǎng)用戶搜索詞進(jìn)行宏觀性的掌控,也能夠針對(duì)每個(gè)用戶做這樣的宏觀性掌控?!疚臋n編號(hào)】H04L29/08GK104394211SQ201410671461【公開日】2015年3月4日申請(qǐng)日期:2014年11月21日優(yōu)先權(quán)日:2014年11月21日【發(fā)明者】黃敏,劉晶,楊晉博申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1