• 
    

    
    

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

      基于Spark 的分布式網(wǎng)絡(luò)日志處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2021-06-25 06:44:38蘆成剛王桂榮
      科學(xué)技術(shù)創(chuàng)新 2021年15期
      關(guān)鍵詞:安裝包日志節(jié)點(diǎn)

      蘆成剛 王桂榮

      (延邊大學(xué)工學(xué)院,吉林 延吉133002)

      當(dāng)今社會(huì)中大量數(shù)據(jù)的出現(xiàn)使數(shù)據(jù)分析領(lǐng)域的地位變得越來(lái)越重要。在當(dāng)今的大數(shù)據(jù)領(lǐng)域,Spark 作為大數(shù)據(jù)通用計(jì)算平臺(tái),不但活躍,而且熱門與高效[1]。為了給用戶提供更好的體驗(yàn),有必要分析網(wǎng)絡(luò)日志。網(wǎng)絡(luò)日志非常龐大,傳統(tǒng)的日志分析方式已經(jīng)很難滿足人們的需要,有必要利用新的技術(shù)架構(gòu)進(jìn)行分析。本文介紹一種以Hadoop 分布式文件系統(tǒng)(HDFS)為存儲(chǔ)結(jié)構(gòu),基于Spark 相關(guān)技術(shù),利用Flume 的高擴(kuò)展性和高可靠性,將日志進(jìn)行分布式存儲(chǔ)并離線分析處理的日志分析處理系統(tǒng)[2]。

      1 系統(tǒng)整體配置

      1.1 虛擬機(jī)環(huán)境安裝

      在本地電腦上安裝一臺(tái)虛擬機(jī),在該虛擬機(jī)上克隆出三臺(tái)主機(jī),安裝cent os 系統(tǒng)。每臺(tái)主機(jī)安裝Hadoop 存儲(chǔ)系統(tǒng),其中,一臺(tái)為主機(jī)(Master),兩臺(tái)為從機(jī)(Slave),構(gòu)成模擬分布式存儲(chǔ)系統(tǒng)。Spark 可以獨(dú)立安裝使用,也可以和Hadoop 一起安裝使用。

      1.2 Spark 平臺(tái)搭建

      1.2.1 Scala 環(huán)境安裝

      1.2.1.1 Master 機(jī)器

      Step1: 下載Scala 安裝包,解壓到/opt 目錄下;

      Step2: 修改Scala 安裝包目錄所屬用戶和用戶組;

      Step3: 找到環(huán)境變量文件.bashrc , 點(diǎn)擊打開(kāi)后進(jìn)行編輯,添加一些其它選項(xiàng),設(shè)置它的Scala_home 為解壓目錄下的安裝包,設(shè)置它的path 環(huán)境變量為安裝包下的bin 文件;

      Step4: 驗(yàn)證Scala 安裝。

      1.2.1.2 Slave 機(jī)器

      Slave 機(jī)的安裝步驟和Master 機(jī)器安裝步驟是一樣的,根據(jù)前面Master 機(jī)器的安裝步驟來(lái)安裝就可以。

      1.2.2 Spark 安裝

      1.2.2.1 Master 機(jī)器安裝步驟如下:

      Step1:在/opt 目錄中,下載Spark 安裝包并將其解壓;

      Step2:找到Spark 安裝包的目錄,重新設(shè)置用戶與用戶組;

      Step3: 找到環(huán)境變量文件.bashrc , 打開(kāi)進(jìn)行編輯,添加Spark 的環(huán)境信息,設(shè)置SPARK_HOME 屬性,使其指向/opt 目錄下的spark 安裝軟件,修改它的Path 環(huán)境變量,使其指向SPARK 的bin 文件和sbin 文件;

      Step4: 對(duì)Spark 進(jìn)行配置。找到Spark 安裝位置并進(jìn)入到conf 目錄,找到Spark-env.sh.template 文件,將其拷貝到Spark-env.sh。用文本編輯器打開(kāi)Spark-env.sh 并將其編輯,添加相關(guān)配置信息,主要是配置相關(guān)環(huán)境變量,例如:

      JAVA_HOME:指定Java 安裝路徑,指向安裝文件;SCALA_HOME:指定Scala 安裝路徑,指向它的安裝版本;SPARK_MASTER_IP:指定Spark 集群 中的Master 節(jié)點(diǎn)的IP 地址;

      SPARK_WORKER_MEMORY:指定的是Worker 節(jié)點(diǎn)能夠分配給Executors 的最大內(nèi)存大??;

      HADOOP_CONF_DIR:指定Hadoop 集群配置文件目錄。

      最后,找到Slaves.template 文件并將其拷貝到Slaves,在里面編輯內(nèi)容為:

      Master

      Slave01

      Slave02

      即Master 既是Master 節(jié)點(diǎn)又是Worker 節(jié)點(diǎn)。

      1.2.2.2 Slave 機(jī)器

      這里Slave 機(jī)的安裝步驟和Master 機(jī)器安裝步驟相同,根據(jù)前面Master 機(jī)器的安裝步驟來(lái)安裝就可以。

      2 系統(tǒng)整體分析

      2.1 需求分析

      日志是計(jì)算機(jī)系統(tǒng)中非常廣泛的概念,任何程序都可以輸出日志。日志源設(shè)備的類型多樣,型號(hào)復(fù)雜,需要對(duì)日志信息進(jìn)行初步的規(guī)范化處理[3]。本設(shè)計(jì)基本使用的是Web 日志,Web 日志里包括由各種Web 服務(wù)器生成的用戶訪問(wèn)日志和Web 應(yīng)用程序輸出的日志。在Web 日志中,每個(gè)日志可以很直觀的表達(dá)用戶的訪問(wèn)行為。接下來(lái)這個(gè)是一條完整的日志:

      117.35.88.11-- [10/Nov/2016:00:01:02 +0800] "GET/article/ajaxcourserecommends?id=124

      HTTP/1.1" 200 2345 "www.imooc.com" "http://www.imooc.com/code/1852" - "Mozilla/5.0 (Windows NT 6.1; WOW64)

      此日志可以獲取大量信息,例如訪問(wèn)者IP、訪問(wèn)時(shí)間、訪問(wèn)過(guò)的網(wǎng)頁(yè)和訪問(wèn)者。Web 日志中有大量消息是人們感興趣的,例如,不同網(wǎng)站的不同類型頁(yè)面瀏覽量,獨(dú)立IP 的數(shù)量等。可以通過(guò)Web 日志計(jì)算關(guān)鍵字查詢的頻率和用戶檢索的用戶查詢的數(shù)量,并用于構(gòu)建廣告點(diǎn)擊魔術(shù)并分析用戶行為特征[4]。

      2.2 系統(tǒng)體系結(jié)構(gòu)

      該平臺(tái)按結(jié)構(gòu)分為三個(gè)模塊:日志收集模塊、日志分發(fā)模塊、日志分析模塊。

      日志收集模塊:Flume 通過(guò)收集和處理Web 日志數(shù)據(jù),可以將其導(dǎo)入進(jìn)HDFS,Flume 收集數(shù)據(jù)的具體過(guò)程為:

      2.2.1 檢查Flume 配置文件,該文件在$FLUME_ HOME/conf目錄下。

      2.2.2 檢查配置代理,監(jiān)視在指定文件夾中是否有新文件的更改。如果出現(xiàn)新文件,就執(zhí)行下一步,并且繼續(xù)監(jiān)視文件夾中的文件更改情況。

      2.2.3 如果有新文件,查看新文件出現(xiàn)的內(nèi)容并解析。

      2.2.4 往通道中寫入,如果成功,則將文件標(biāo)記為已完成或?qū)⑽募h除,如果寫入不成功,則重新讀取文件內(nèi)容并解析。

      2.2.5 傳輸數(shù)據(jù)到channel 中,并將數(shù)據(jù)寫入HDFS 存儲(chǔ)。

      日志存儲(chǔ)模塊:本系統(tǒng)使用HDFS 進(jìn)行數(shù)據(jù)存儲(chǔ),通過(guò)使用Flume,文件會(huì)以三秒的間隔自動(dòng)上傳到HDFS,用于三個(gè)節(jié)點(diǎn)。日志數(shù)據(jù)存儲(chǔ)模塊的數(shù)據(jù)存儲(chǔ)過(guò)程如下:

      Step1: 在客戶端,調(diào)用create () 函數(shù),創(chuàng)建文件DistributedFileSystem。

      Step2:對(duì)元數(shù)據(jù)進(jìn)行封裝,此功能用FileStaus 類完成。

      Step3:調(diào)用元數(shù)據(jù)節(jié)點(diǎn),此功能用FileSystem 類完成。

      Step4: 元數(shù)據(jù)節(jié)點(diǎn)有重要的作用,首先確定原文件是否存在,如果不存在,就重新調(diào)用create(),創(chuàng)建新文件,如果存在,就面向客戶端創(chuàng)建新文件。

      Step5: 客戶端用于寫數(shù)據(jù),FSDOutputStream 則負(fù)責(zé)將數(shù)據(jù)分成塊,寫入數(shù)據(jù)隊(duì)列。

      Step6:FSDOutputStream 保存確認(rèn)隊(duì)列,用以確認(rèn)數(shù)據(jù)塊是否發(fā)送,等待數(shù)據(jù)節(jié)點(diǎn)通知,數(shù)據(jù)是否成功寫入和存儲(chǔ),如果成功存儲(chǔ)則結(jié)束。

      日志分析模塊:日志分析模塊主要組成部分為日志數(shù)據(jù)清理,日志數(shù)據(jù)特征提取,日志數(shù)據(jù)功能正規(guī)化與日志數(shù)據(jù)特征分析等[5]。日志數(shù)據(jù)清理模塊中,理想情況下,Web 日志數(shù)據(jù)集中的每條記錄都已完成。但實(shí)際上會(huì)有一些嘈雜且不完整的數(shù)據(jù)殘留。丟失數(shù)據(jù)的原因大概就是因?yàn)?不愿意發(fā)布的數(shù)據(jù)或者是手動(dòng)輸入時(shí)一時(shí)疏忽,導(dǎo)致了一些數(shù)據(jù)的丟失。在Web 日志數(shù)據(jù)集中,如果一條記錄的屬性被標(biāo)記為空或“_”,那么該記錄被認(rèn)為具有缺失值,并不是一條完整的數(shù)據(jù)[6]。

      3 實(shí)驗(yàn)結(jié)果

      收集到的數(shù)據(jù)應(yīng)先對(duì)其進(jìn)行清洗操作,之后需要解析訪問(wèn)的日志,使用Sparksql 解析訪問(wèn)日志。通過(guò)Spark 對(duì)離線日志進(jìn)行分析,統(tǒng)計(jì)最受歡迎的topn 的視頻訪問(wèn)次數(shù)。統(tǒng)計(jì)結(jié)果如圖1所示。

      圖1 最受歡迎的topn 的視頻訪問(wèn)次數(shù)

      將統(tǒng)計(jì)結(jié)果寫入Mysql 中,這個(gè)過(guò)程是從底層往上層封裝的。編寫Mysql 的連接工具類,步驟如下:

      Step1:創(chuàng)建數(shù)據(jù)庫(kù)表;

      Step2:在pom.xml 文件中添加JDBC 依賴包;

      Step3:和表結(jié)構(gòu)對(duì)應(yīng)的課程訪問(wèn)次數(shù)實(shí)體類;

      Step4:調(diào)用DAO 實(shí)現(xiàn)統(tǒng)計(jì)結(jié)果寫入Mysql;

      Step5:執(zhí)行程序后,查看驗(yàn)證數(shù)據(jù)庫(kù)結(jié)果。如圖2 所示。

      圖2 將結(jié)果寫入Mysql

      由實(shí)驗(yàn)結(jié)果可知,該系統(tǒng)能夠較好的實(shí)現(xiàn)Web 日志的分析,可以為網(wǎng)站決策者提供必要的參考依據(jù)。

      猜你喜歡
      安裝包日志節(jié)點(diǎn)
      CM節(jié)點(diǎn)控制在船舶上的應(yīng)用
      手機(jī)之間如何快速分享應(yīng)用安裝包
      一名老黨員的工作日志
      Analysis of the characteristics of electronic equipment usage distance for common users
      基于AutoCAD的門窗節(jié)點(diǎn)圖快速構(gòu)建
      扶貧日志
      心聲歌刊(2020年4期)2020-09-07 06:37:14
      游學(xué)日志
      另類解壓軟件安裝包
      抓住人才培養(yǎng)的關(guān)鍵節(jié)點(diǎn)
      一種基于粗集和SVM的Web日志挖掘模型
      名山县| 万年县| 建昌县| 华阴市| 南丰县| 丹凤县| 民乐县| 黄陵县| 旌德县| 永寿县| 淮安市| 喀什市| 漳州市| 宜宾县| 深水埗区| 海安县| 永和县| 苍溪县| 舞钢市| 和平区| 太保市| 循化| 吕梁市| 黔南| 华宁县| 隆昌县| 焦作市| 四平市| 拜城县| 长兴县| 中西区| 吴川市| 松阳县| 托里县| 大冶市| 凤庆县| 扎赉特旗| 德格县| 乐平市| 西畴县| 土默特左旗|