• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      MapReduce技術(shù)在日志分析中的研究應(yīng)用

      2017-06-15 17:27:27林勇吳翀嚴(yán)盟彭敏佳
      計(jì)算機(jī)時(shí)代 2017年6期

      林勇+吳翀+嚴(yán)盟+彭敏佳

      摘 要: Hadoop技術(shù)的核心框架MapReduce非常適用于日志分析系統(tǒng),并具有良好的易用性和可擴(kuò)展性。文章將MapReduce的日志處理技術(shù)應(yīng)用于某項(xiàng)目平臺(tái)的日志數(shù)據(jù)分析中,以實(shí)驗(yàn)結(jié)果證明了MapReduce能較好地解決Web日志處理單機(jī)所面臨的效率低下問題,能更好地整合計(jì)算機(jī)資源。

      關(guān)鍵詞: Hadoop; MapReduce; Web日志; 日志分析

      中圖分類號(hào):TP391.9 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2017)06-26-03

      Research and application of MapReduce in log analysis

      Lin Yong, Wu Chong, Yan Meng, Peng Minjia

      (Zhejiang Topcheer Information Technology Co.,Ltd., Hangzhou, Zhejiang 310006, China)

      Abstract: Hadoop MapReduce is very applicable to log analysis system, and has good usability and scalability. In this paper, the MapReduce log processing technology is applied to the log data analysis of a project platform, and the experimental results show that MapReduce can solve the low efficiency problem of processing Web log with single machine, better integrate computer resources.

      Key words: Hadoop; MapReduce; Web log; log analysis

      0 引言

      Web日志包含著網(wǎng)站最重要的信息,通過日志分析,我們可以知道網(wǎng)站的訪問量,哪個(gè)網(wǎng)頁訪問人數(shù)最多,哪個(gè)網(wǎng)頁最有價(jià)值,哪些網(wǎng)頁需要優(yōu)化等相關(guān)信息。一般中型的網(wǎng)站(10W的PV以上),每天會(huì)產(chǎn)生1G以上Web日志文件。大型或超大型的網(wǎng)站,可能每小時(shí)就會(huì)產(chǎn)生10G的數(shù)據(jù)量。當(dāng)數(shù)據(jù)量每天以10G、100G增長的時(shí)候,單機(jī)處理能力已經(jīng)不能滿足需求。我們就需要增加系統(tǒng)的復(fù)雜性,用計(jì)算機(jī)集群,存儲(chǔ)陣列來解決。在Hadoop出現(xiàn)之前,海量數(shù)據(jù)存儲(chǔ),和海量日志分析都是非常困難的。只有少數(shù)公司掌握著高效的并行計(jì)算、分步式計(jì)算、分步式存儲(chǔ)的核心技術(shù)。Hadoop的出現(xiàn),大幅度地降低了海量數(shù)據(jù)處理的門檻,讓小公司甚至是個(gè)人都有能力搞定海量數(shù)據(jù),Hadoop非常適用于日志分析系統(tǒng)[1]。

      1 Hadoop

      Hadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。

      Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求,能以流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。

      Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),MapReduce為海量的數(shù)據(jù)提供了計(jì)算[2]。

      2 MapReduce編程模型

      Google提出的MapReduce編程模型,由于良好的易用性和可擴(kuò)展性,得到了工業(yè)界和學(xué)術(shù)界的廣泛支持。Hadoop,MapReduce的開源實(shí)現(xiàn),已經(jīng)在Yahoo!,F(xiàn)acebook,IBM百度,中國移動(dòng)等多家單位中使用[3]。

      MapReduce以函數(shù)方式提供了Map和Reduce來進(jìn)行分布式計(jì)算。Map相對(duì)獨(dú)立且并行運(yùn)行,對(duì)存儲(chǔ)系統(tǒng)中的文件按行處理,并產(chǎn)生鍵值(key/value)對(duì)。Reduce以Map的輸出作為輸入,相同key的記錄匯聚到同一reduce,reduce對(duì)這組記錄進(jìn)行操作,并產(chǎn)生新的數(shù)據(jù)集。所有Reduce任務(wù)的輸出組成最終結(jié)果。形式化描述如下:

      apReduce主要分為以下幾步。

      ⑴ 用戶提交MapReduce程序至主控節(jié)點(diǎn),主控節(jié)點(diǎn)將輸入文件劃分成若干分片(split)。主控節(jié)點(diǎn)Master 和工作節(jié)點(diǎn)worker啟動(dòng)相應(yīng)進(jìn)程。

      ⑵ 主控節(jié)點(diǎn)根據(jù)工作節(jié)點(diǎn)實(shí)際情況,進(jìn)行map任務(wù)的分配。

      ⑶ 被分配到map任務(wù)的節(jié)點(diǎn)讀取文件的一個(gè)分片,按行進(jìn)行map處理,將結(jié)果存在本地。結(jié)果分成R個(gè)分片進(jìn)行存儲(chǔ),R對(duì)應(yīng)的是Reduce數(shù)目。

      ⑷ Map節(jié)點(diǎn)將存儲(chǔ)文件的信息傳遞給Master主控節(jié)點(diǎn),Master指定Reduce任務(wù)運(yùn)行節(jié)點(diǎn),并告知數(shù)據(jù)獲取節(jié)點(diǎn)信息。

      ⑸ Reduce節(jié)點(diǎn)根據(jù)Master傳遞的信息去map節(jié)點(diǎn)遠(yuǎn)程讀取數(shù)據(jù)。因?yàn)閞educe函數(shù)按分組進(jìn)行處理,key相同的記錄被一同處理,在reduce節(jié)點(diǎn)正式處理之前,對(duì)所有的記錄按照key排序。

      ⑹ Reduce將處理結(jié)果寫入到分布式文件系統(tǒng)中[4]。

      3 某項(xiàng)目平臺(tái)日志數(shù)據(jù)分析

      我們使用科技系統(tǒng)某項(xiàng)目平臺(tái)日志數(shù)據(jù),進(jìn)行提取KPI數(shù)據(jù)分析,以PV(PageView,頁面訪問量統(tǒng)計(jì))為例進(jìn)行測試。

      項(xiàng)目采用tomcat集群,tomcat訪問日志每天產(chǎn)生一份。每天在夜間在0點(diǎn)后,向HDFS導(dǎo)入前一天的日志文件。

      一條tomcat訪問日志如下所示:

      日志處理流程如圖2所示。完成導(dǎo)入后,啟動(dòng)MapReduce程序,提取并計(jì)算統(tǒng)計(jì)指標(biāo),最后將結(jié)果按指標(biāo)值排序。整個(gè)處理過程采用兩個(gè)任務(wù)串聯(lián)執(zhí)行方式完成。

      3.2 任務(wù)-PV值統(tǒng)計(jì)

      3.2.1 Map階段

      在Map階段是從日志文件中讀取記錄,提取日志中的數(shù)據(jù)url值,以u(píng)rl作為Map()方法的key,將常量值1作為value。算法如下:

      ⑴ Map開始;

      ⑵ 獲取日志文件路徑;

      ⑶ 讀取日志文件;

      ⑷ 用正則表達(dá)式模式識(shí)別url,設(shè)置url為Key;

      ⑸ 設(shè)置value為1;

      ⑹ 寫人key與value,context.write(request,1);

      ⑺ Map結(jié)束。

      3.2.2 Reduce階段

      在Reduce階段將得到的數(shù)據(jù)以key作為主鍵,將所有value值相加得出最終結(jié)果:

      ⑴ Reduce開始;

      ⑵ 收集Map階段傳人的key與value,;

      ⑶ 累加values;

      ⑷ 寫入key,sum,context.wirte(key,sum);

      ⑸ Reduce結(jié)束。

      3.3 任務(wù)二PV值排序

      3.3.1 Map階段

      Map階段是從任務(wù)一輸出目錄獲取數(shù)據(jù),將PV值做為key,url作為value。算法如下:

      ⑴ Map開始;

      ⑵ 獲取任務(wù)一輸出目錄路徑;

      ⑶ 讀取任務(wù)一結(jié)果文件;

      ⑷ 設(shè)置PV值為Key;

      ⑸ 設(shè)置url值為1;

      ⑹ 寫人key與value,context.write(pv,url);

      ⑺ Map結(jié)束。

      3.3.2 Reduce階段

      在Reduce階段將得到的數(shù)據(jù)以key作為主鍵,系統(tǒng)將根據(jù)key的實(shí)現(xiàn)自動(dòng)進(jìn)行排序,采用IntWritable為Key可進(jìn)行升序排列,若要實(shí)現(xiàn)升序排列,需要自己實(shí)現(xiàn)Key實(shí)現(xiàn)。

      ⑴ Reduce開始;

      ⑵ 收集Map階段傳人的key與value,

      ⑶ 寫入pv,url,context.wirte(context.write(pv,url););

      ⑷ Reduce結(jié)束。

      3.4 執(zhí)行結(jié)果

      由圖3可知,前三個(gè)頁面訪問量占了總訪問量的95%,說明對(duì)該三個(gè)頁面進(jìn)行優(yōu)化,可達(dá)到很好性能提升效果。

      同時(shí),我們嘗試分別采用不同數(shù)量節(jié)點(diǎn)對(duì)日志進(jìn)行處理。

      由圖4可知,隨著節(jié)點(diǎn)數(shù)的增加,對(duì)日志處理所需要的時(shí)間呈不斷下降的趨勢。

      4 結(jié)束語

      本文介紹了Hadoop技術(shù)和MapReduce編程模型,并將MapReduce編程模型應(yīng)用于某項(xiàng)目平臺(tái)日志數(shù)據(jù)的KPI數(shù)據(jù)分析中,以PV(PageView,頁面訪問量統(tǒng)計(jì))為例進(jìn)行了測試。實(shí)驗(yàn)結(jié)果充分說明了,基于Hadoop的MapReduce的日志處理技術(shù)能較好地解決Web日志處理單機(jī)所面臨的效率低下問題,更好地整合計(jì)算機(jī)資源。下一步將考慮完善KPI指標(biāo),并嘗試使用spark引擎對(duì)KPI指標(biāo)進(jìn)行實(shí)時(shí)分析,以提高對(duì)系統(tǒng)各種突發(fā)狀況的響應(yīng)速度。

      參考文獻(xiàn)(References):

      [1] 毛嚴(yán)奇,彭沛夫.基于MapReduce的Web日志挖掘預(yù)處理[J].

      計(jì)算機(jī)與現(xiàn)代化,2013.9:35-41

      [2] 王宏宇.基于Hadoop平臺(tái)的云計(jì)算構(gòu)建與日志分析[D].哈

      爾濱理工大學(xué)碩士學(xué)位論文,2012.

      [3] 竇蒙,聞立杰,王建民等.基于MapReduce的海量事件日志并

      行轉(zhuǎn)化算法[J].計(jì)算機(jī)集成制造系統(tǒng),2013.19(8):1784-1793

      [4] 徐正巧,趙德偉.基于MapReduce的網(wǎng)絡(luò)日志分析系統(tǒng)[J].網(wǎng)

      絡(luò)與通信,2015.10:89-90

      宽甸| 修武县| 青浦区| 韩城市| 彰化市| 休宁县| 宜宾县| 金秀| 突泉县| 北宁市| 高阳县| 宿州市| 玉山县| 临桂县| 呈贡县| 台南市| 孙吴县| 杭州市| 濉溪县| 长岭县| 石首市| 安乡县| 弋阳县| 出国| 南昌县| 安溪县| 金溪县| 宝清县| 曲周县| 皋兰县| 沙坪坝区| 潮州市| 赣榆县| 常山县| 台中市| 丹东市| 炉霍县| 来凤县| 藁城市| 卫辉市| 博客|