基于Hadoop大數(shù)據(jù)處理技術(shù)的日志分析系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及日志分析技術(shù),特別是涉及一種基于Hadoop大數(shù)據(jù)處理技術(shù)的日志分析技術(shù)。
【背景技術(shù)】
[0002]今天,我們生活在數(shù)據(jù)時代,已經(jīng)被各種數(shù)據(jù)包圍著。這是個信息爆炸的時代,全球以億為單位的電話、互聯(lián)網(wǎng)用戶每天不斷地產(chǎn)生大量數(shù)據(jù),人們之間打電話、發(fā)短信、上網(wǎng)聊天、上傳視頻、轉(zhuǎn)發(fā)微博等,信息每天以幾何級的速度增長著,使得市場上各大互聯(lián)網(wǎng)公司都面臨著嚴(yán)峻的挑戰(zhàn)。他們需要TB甚至PB級數(shù)據(jù)的分析,挖掘出銷售量高的商品信息,網(wǎng)站受歡迎程度高的版面,網(wǎng)站上點擊量高的廣告等,而傳統(tǒng)的解決方案和方法對如此規(guī)模的數(shù)據(jù)就只能望洋興嘆了。
[0003]開源組織機(jī)構(gòu)Apache基金會下大數(shù)據(jù)處理平臺Hadoop的誕生,突破了傳統(tǒng)數(shù)據(jù)處理方式的瓶頸,使得海量數(shù)據(jù)的收集、存儲、計算變得更加容易、更加高效。Hadoop系統(tǒng)是一個分布式的數(shù)據(jù)存儲與處理的平臺,可以實施在廉價的計算機(jī)集群上,提供了一個海量數(shù)據(jù)分布式存儲和計算的架構(gòu),文件系統(tǒng)HDFS和計算框架MapReduce,使用戶能充分利用集群的大容量空間存儲海量數(shù)據(jù)和集群總分總(即總:數(shù)據(jù)收集合并;分:分布式存儲和計算;總:計算結(jié)果合并)的高速計算能力開發(fā)分布式的應(yīng)用程序,實現(xiàn)海量數(shù)據(jù)的毫秒級高速處理。由于該平臺采用面向?qū)ο蟮木幊陶Z言Java編寫,因此它具有很好的可移植性和可擴(kuò)展性。發(fā)展至今,已擴(kuò)展出了一些優(yōu)秀的框架,企業(yè)用的比較多的框架如Flume、ZooKeeper、HBase、Pig、Hive、Sqoop等,實現(xiàn)了一些業(yè)務(wù)邏輯的封裝,簡化了Hadoop的使用。
[0004]傳統(tǒng)數(shù)據(jù)處理方式存儲空間和運算能力有限,例如,在一臺計算機(jī)上運行傳統(tǒng)APP,數(shù)據(jù)量僅僅三千條左右,運行也需要大概半個小時左右,并且CPU的使用率可達(dá)到85 %左右,如果計算機(jī)硬件配置更低,則會運行更長時間,而且必須人工收集并加工數(shù)據(jù),清洗數(shù)據(jù),耗費大量的人力物力,并且效率極低,所以現(xiàn)有技術(shù)已經(jīng)很難滿足大數(shù)據(jù)量的需求,必須想方設(shè)法提高效率,運用更先進(jìn)的技術(shù)解決大量數(shù)據(jù)的處理。
【發(fā)明內(nèi)容】
[0005]對于傳統(tǒng)的數(shù)據(jù)處理模式,收集到的數(shù)據(jù)放在關(guān)系型數(shù)據(jù)庫中,數(shù)據(jù)間存在各種關(guān)聯(lián),甚至產(chǎn)生數(shù)據(jù)依賴,而且數(shù)據(jù)在單臺計算機(jī)上處理,受到計算機(jī)的配置、網(wǎng)絡(luò)等各種因素的干擾而影響數(shù)據(jù)處理的效率。
[0006]本發(fā)明是基于Hadoop平臺開發(fā)的企業(yè)網(wǎng)站日志分析解決方案,主要分為五個模塊,分別是文件上傳模塊、數(shù)據(jù)清洗模塊、數(shù)據(jù)統(tǒng)計分析模塊、數(shù)據(jù)導(dǎo)出模塊、數(shù)據(jù)展現(xiàn)模塊。文件上傳使用Flume框架,數(shù)據(jù)清洗使用MapReduce核心算法,數(shù)據(jù)的統(tǒng)計分析使用Hi ve框架,可以計算得到網(wǎng)站各大關(guān)鍵指標(biāo),如瀏覽量PV、注冊用戶數(shù)、ip數(shù)、跳出率,以供運營者決策,數(shù)據(jù)的導(dǎo)出使用SQOOP框架,將得到的各個指標(biāo)導(dǎo)出到集群外的關(guān)系型數(shù)據(jù)庫MySql中,數(shù)據(jù)的展現(xiàn)使用ZooKeeper和HBase框架,可以實現(xiàn)海量數(shù)據(jù)的毫秒級查詢。
[0007]為實現(xiàn)本發(fā)明之目的,采用以下技術(shù)方案予以實現(xiàn):
[0008]一種日志分析系統(tǒng),包括:文件上傳模塊、數(shù)據(jù)清洗模塊、數(shù)據(jù)統(tǒng)計分析模塊、數(shù)據(jù)導(dǎo)出模塊和數(shù)據(jù)展示模塊,其中
[0009]文件上傳模塊,用于上傳日志文件,首先文件上傳模塊采集日志文件,之后將日志文件上傳到分布式文件系統(tǒng);
[0010]數(shù)據(jù)清洗模塊,用于對分布式文件系統(tǒng)中的日志文件數(shù)據(jù)進(jìn)行清洗轉(zhuǎn)換,清洗轉(zhuǎn)換后的數(shù)據(jù)存放在分布式文件系統(tǒng)中;
[0011 ]數(shù)據(jù)統(tǒng)計分析模塊,用于對分布式文件系統(tǒng)中的日志文件按數(shù)據(jù)進(jìn)行統(tǒng)計分析,得到需要的統(tǒng)計數(shù)據(jù),將統(tǒng)計數(shù)據(jù)存放在分布式文件系統(tǒng)中;
[0012]數(shù)據(jù)導(dǎo)出模塊,用于把分布式文件系統(tǒng)中存儲的數(shù)據(jù)導(dǎo)出到外部的數(shù)據(jù)庫中;
[0013]數(shù)據(jù)展現(xiàn)模塊,用于對外部的數(shù)據(jù)庫中存儲的數(shù)據(jù)進(jìn)行查詢,并顯示查詢結(jié)果。
[0014]所述的日志分析系統(tǒng),優(yōu)選的:
[0015]所述分布式文件系統(tǒng)是HDFS;
[0016]所述日志文件為應(yīng)用集群的日志文件。
[0017]所述的日志分析系統(tǒng),優(yōu)選的:
[0018]數(shù)據(jù)清洗包括檢查數(shù)據(jù)一致性,處理無效值和缺失值。
[0019]所述的日志分析系統(tǒng),優(yōu)選的:
[0020]所述統(tǒng)計數(shù)據(jù)包括PV、注冊用戶數(shù)、獨立ip數(shù)、跳出率。
[0021 ]所述的日志分析系統(tǒng),優(yōu)選的:
[0022]所述外部的數(shù)據(jù)庫是Mysql數(shù)據(jù)庫。
[0023]一種日志分析方法,包括以下步驟:
[0024]步驟1.文件上傳:首先采集日志文件,之后將日志文件上傳到分布式文件系統(tǒng);
[0025]步驟2.數(shù)據(jù)清洗:對分布式文件系統(tǒng)中的日志文件數(shù)據(jù)進(jìn)行清洗轉(zhuǎn)換,清洗轉(zhuǎn)換后的數(shù)據(jù)存放在分布式文件系統(tǒng)中;
[0026]步驟3.數(shù)據(jù)統(tǒng)計分析,對分布式文件系統(tǒng)中的日志文件數(shù)據(jù)進(jìn)行統(tǒng)計分析,得到需要的統(tǒng)計數(shù)據(jù),將統(tǒng)計數(shù)據(jù)存放在分布式文件系統(tǒng)中。
[0027]步驟4.數(shù)據(jù)導(dǎo)出:把分布式文件系統(tǒng)中存儲的數(shù)據(jù)導(dǎo)出到外部的數(shù)據(jù)庫中。
[0028]步驟5.數(shù)據(jù)展現(xiàn):對外部的數(shù)據(jù)庫中存儲的數(shù)據(jù)進(jìn)行查詢,并顯示查詢結(jié)果。
[0029]所述的日志分析方法,優(yōu)選的:
[0030]所述分布式文件系統(tǒng)是HDFS;
[0031]所述日志文件為應(yīng)用集群的日志文件。
[0032]所述的日志分析方法,優(yōu)選的:
[0033]數(shù)據(jù)清洗包括檢查數(shù)據(jù)一致性,處理無效值和缺失值。
[0034]所述的日志分析方法,優(yōu)選的:
[0035]所述統(tǒng)計數(shù)據(jù)包括PV、注冊用戶數(shù)、獨立ip數(shù)、跳出率。
[0036]所述的日志分析方法,優(yōu)選的:
[0037]所述外部的數(shù)據(jù)庫是Mysql數(shù)據(jù)庫。
[0038]—種日志分析系統(tǒng)的建設(shè)方法,包括以下步驟:
[0039]第一步:搭建分布式集群平臺,包括以下四種節(jié)點:[0040 ]元數(shù)據(jù)節(jié)點、從元數(shù)據(jù)節(jié)點、數(shù)據(jù)節(jié)點1、數(shù)據(jù)節(jié)點2;
[0041 ]第二步:在集群上搭建所需的數(shù)據(jù)框架;
[0042]第三步:在以上四種節(jié)點的Iinux系統(tǒng)的根目錄下創(chuàng)建日志文件夾,用于存放日志文件執(zhí)行命令,啟動集群;
[0043]第四步:在分布式文件系統(tǒng)中的根目錄下創(chuàng)建網(wǎng)頁日志文件夾,通過日志收集模塊與集群通過遠(yuǎn)程過程調(diào)用協(xié)議)通信交互,讓日志收集任務(wù)以后臺進(jìn)程運行,監(jiān)控日志文件夾,一旦文件夾收集到日志文件,就同步上傳到分布式文件中的網(wǎng)頁日志文件夾下;
[0044]第五步:數(shù)據(jù)上傳成功后,通過啟動清洗模塊進(jìn)行數(shù)據(jù)清洗;數(shù)據(jù)清洗完畢后,通過網(wǎng)頁的形式在瀏覽器端訪問查看文件系統(tǒng),查看到所需數(shù)據(jù);
[0045]第六步:清洗完后使用數(shù)據(jù)統(tǒng)計分析模塊)對數(shù)據(jù)進(jìn)行統(tǒng)計分析,創(chuàng)建外部表引用網(wǎng)頁日志文件夾下的數(shù)據(jù),包括:
[0046]計算瀏覽量PV,統(tǒng)計量PV;
[0047]計算注冊用戶數(shù);
[0048]計算獨立ip數(shù),;
[0049]計算跳出數(shù),;
[0050]第七步:將得到的各個統(tǒng)計量分別存放到對應(yīng)的表中,然后把各個表中的數(shù)據(jù)匯總到一張表中;
[0051]第八步:使用數(shù)據(jù)導(dǎo)出模塊把匯總的數(shù)據(jù)導(dǎo)出到外面的關(guān)系型數(shù)據(jù)庫中,實現(xiàn)數(shù)據(jù)的快速查詢。
【附圖說明】
[0052]圖1為本發(fā)明日志分析系統(tǒng)示意圖;
[0053]圖2為本發(fā)明日志分析方法示意圖。
【具體實施方式】
[0054]如圖1所示,本發(fā)明日志分析系統(tǒng)包括:文件上傳模塊、數(shù)據(jù)清洗模塊、數(shù)據(jù)統(tǒng)計分析模塊、數(shù)據(jù)導(dǎo)出模塊和數(shù)據(jù)展示模塊。
[0055]文件上傳模塊,用于上傳日志文件,首先文件上傳模塊采集日志文件,之后將日志文件上傳到分布式文件系統(tǒng),如HDFS文件系統(tǒng)。所述日志文件為應(yīng)用集群的日志