第八章 Flume組件安裝配置與應(yīng)用_第1頁
第八章 Flume組件安裝配置與應(yīng)用_第2頁
第八章 Flume組件安裝配置與應(yīng)用_第3頁
第八章 Flume組件安裝配置與應(yīng)用_第4頁
第八章 Flume組件安裝配置與應(yīng)用_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Flume安裝與配置主講:李強(qiáng)任務(wù)描述Flume的安裝相對來說比較簡單,本任務(wù)的核心配置是設(shè)置Flume代理的配置文件,并通過這個(gè)代理實(shí)例完成數(shù)據(jù)的采集。任務(wù)分析Flume安裝后只需要增加運(yùn)行的環(huán)境變量,并設(shè)置Java的安裝目錄即可;使用Flume需要編輯一個(gè)配置文件,在配置文件當(dāng)中描述Source、Channel與Sink的具體實(shí)現(xiàn),而后再運(yùn)行一個(gè)Agent實(shí)例,在運(yùn)行Agent實(shí)例的過程中會讀取配置文件的內(nèi)容,F(xiàn)lume就會完成數(shù)據(jù)采集的任務(wù),Source組件可以設(shè)置為系統(tǒng)日志、文件目錄、Kafka等類型,Sink可以傳輸給HDFS、Hive或HBase等,在本任務(wù)應(yīng)用案例中,監(jiān)控采集文件目錄的日志并傳輸?shù)紿DFS文件中。8.1.1安裝Flume組件1.解壓安裝文件下載好的安裝包都需上傳到指定目錄下,本手冊指定為/root/目錄,使用ls命令可以查看上傳的安裝包(具體上傳方式請參考項(xiàng)目1),如圖8-1所示。代碼8-1解壓安裝包tar-zxfapache-flume-1.9.0-bin.tar.gz-C/usr/local/src/ls/usr/local/src/圖8-1查看安裝包使用tar命令解壓Flume到/usr/local/src文件夾,并切換到安裝目錄下查看,可以使用ls查看解壓后的效果,如代碼8-1所示,效果如圖8-2所示。圖8-2查看解壓好的安裝包2.修改文件夾名稱由于解壓后的文件夾名稱帶有比較復(fù)雜的版本號,為了簡化后續(xù)配置,此處修改文件夾名稱。使用mv命令將解壓的apache-flume-1.9.0-bin目錄重命名為flume,如代碼8-2所示,效果如圖8-3所示:代碼8-2重命名文件夾mv/usr/local/src/apache-flume-1.9.0-bin/usr/local/src/flumels/usr/local/src/圖8-3重命名文件夾3.修改環(huán)境變量文件為了可以在任何目錄下直接執(zhí)行Flume的相關(guān)命令,可以在環(huán)境變量文件中添加Flume的環(huán)境變量。參考項(xiàng)目2,使用“vi/root/.bash_profile”編輯環(huán)境變量文件,將如表8-1所示的配置信息添加到/root/.bash_profile文件的末尾,保存退出。表8-1環(huán)境變量文件的添加內(nèi)容#setflumeenvironmentexportFLUME_HOME=/usr/local/src/flumeexportPATH=$PATH:$FLUME_HOME/bin4.生效環(huán)境變量文件為了刷新環(huán)境變量文件的配置,需要在master節(jié)點(diǎn)執(zhí)行下面的命令使得環(huán)境變量文件生效,如代碼8-3所示。代碼8-3生效環(huán)境配置文件source/root/.bash_profile8.1.2配置Flume1.修改flume-env.sh配置文件flume-env.sh是Flume命令執(zhí)行時(shí)去加載Java的環(huán)境變量設(shè)置文件。由于/usr/local/src/flume/conf目錄里的是配置模板文件,需要復(fù)制為flume-env.sh,使用代碼8-4的代碼復(fù)制并修改文件內(nèi)容。打開配置文件后,首先將“exportJAVA_HOME”前面的#去掉;值的內(nèi)容修改為Java的安裝目錄,具體設(shè)置參考內(nèi)容如表8-2所示。代碼8-4修改flume-env.sh文件cd/usr/local/src/flume/confcpflume-env.sh.templateflume-env.shviflume-env.sh表8-2文件的修改內(nèi)容exportJAVA_HOME=/usr/local/src/java2.更新軟件包因?yàn)镠adoop是3.1.4版本的,所帶的guava版本較高,與Flume帶的版本沖突,所以這里要在Flume的lib文件夾下將guava-11.0.2.jar刪除,并將Hadoop的較高版本guava的Jar包復(fù)制進(jìn)來,可以使用代碼8-5中的代碼來完成軟件包的更新,具體的軟件包版本應(yīng)該參加本地的實(shí)際版本進(jìn)行調(diào)整。代碼8-5更新guava包c(diǎn)d/usr/local/src/flume/librmguava-11.0.2.jarcp/usr/local/src/hive/lib/guava-27.0-jre.jar./#放到/usr/local/src/flume/lib當(dāng)前的目錄下3.驗(yàn)證Flume安裝情況至此,F(xiàn)lume的安裝與配置已經(jīng)完成,可以使用中代碼8-6的命令,驗(yàn)證Flume的安裝配置情況。執(zhí)行代碼8-6后,顯示Flume的版本號為1.9.0,表示Flume安裝成功,如圖8-4所示。代碼8-6驗(yàn)證Flumeflume-ngversion圖8-4Flume的安裝版本8.1.3創(chuàng)建代理文件創(chuàng)建代理文件要完成Flume數(shù)據(jù)采集任務(wù),需要創(chuàng)建一個(gè)Agent的配置文件,內(nèi)容包括Source、Channel和Sink類型和屬性配置。在Flume安裝目錄下創(chuàng)建一個(gè)simple_hdfs_flume.conf文件,如代碼8-7所示。在該文件中添加內(nèi)容,如表8-3所示,其中a1.sources.r1.spoolDir的選項(xiàng)設(shè)置為“/usr/local/src/hadoop/logs/”,表示采集Hadoop集群運(yùn)行的日志記錄;a1.sinks.k1.hdfs.path設(shè)置為“hdfs://master:9000/tmp/flume”,表示將采集到的日志以文件的形式存儲到HDFS系統(tǒng)該目錄,其他具體的設(shè)置請參考其中的注釋。代理配置文件中各個(gè)組件的屬性設(shè)置可以有很多的選擇,具體請參考官方文檔,這里僅舉例說明。代碼8-7創(chuàng)建Flume代理配置文件cd/usr/local/src/flume/conf/visimple_hdfs_flume.conf#設(shè)置agent的名稱為a1,a1的sources組件名稱為r1,a1的sinks組件名稱為k1,a1的channels組件名稱為k1a1.sources=r1a1.sinks=k1a1.channels=c1#下面設(shè)置r1的類型為監(jiān)聽目錄,并設(shè)置監(jiān)聽的目錄以及文件頭屬性a1.sources.r1.type=spooldira1.sources.r1.spoolDir=/usr/local/src/hadoop/logs/a1.sources.r1.fileHeader=true#下面設(shè)置k1的類型為HDFS,并設(shè)置HDFS的目標(biāo)路徑以及文件的相關(guān)的屬性a1.sinks.k1.type=hdfsa1.sinks.k1.hdfs.path=hdfs://master:9000/tmp/flume......省略表8-3代理配置文件內(nèi)容8.1.4啟動Flume并傳輸數(shù)據(jù)啟動Flume并傳輸數(shù)據(jù)參考項(xiàng)目2在master節(jié)點(diǎn)執(zhí)行start-all.sh啟動,并使用jps查看Java進(jìn)程是否正常。在master節(jié)點(diǎn)的一個(gè)終端窗口使用中的Flume命令加載simple_hdfs_flume.conf代理配置文件,并啟動Flume進(jìn)行日志數(shù)據(jù)的采集與傳輸,如代碼8-8所示。啟動Flume后,Agent的a1實(shí)例啟動后,會成功創(chuàng)建c1、r1、k1組件實(shí)例,啟動后的最后一段內(nèi)容如圖8-5所示,表示Flume正在監(jiān)控對應(yīng)的目錄,并進(jìn)行數(shù)據(jù)的采集與傳輸中,如果需要查看采集和傳輸?shù)男Ч?,請不要關(guān)閉該窗口,打開新的窗口查看。圖8-5Flume啟動后采集和傳輸?shù)倪^程圖代碼8-8啟動Flumecd/usr/local/src/flume/confflume-ngagent--conf-filesimple_hdfs_flume.conf--namea18.1.5查看Flume傳輸?shù)奈募?shù)據(jù)啟動Flume并傳輸數(shù)據(jù)開啟一個(gè)新的master節(jié)點(diǎn)終端,進(jìn)入配置文件中所設(shè)置的HDFS文件存儲路徑,查看該文件路徑的情況,如代碼8-9所示??梢钥吹皆撐募A下面已經(jīng)傳輸了很多的日志文件,每一次或者不同的主機(jī)產(chǎn)生的日志文件記錄是不相同的,具體情況參考如圖8-6所示。圖8-6HDFS收集的數(shù)據(jù)文件代碼8-9查看HDFS文件目錄hdfsdfs-ls/tmp/flume啟動Flume并傳輸數(shù)據(jù)也可以通過HDFS的WebUI界面查看,具體文件情況參考如圖8-7所示。圖8-6HDFS收集的數(shù)據(jù)文件謝謝廣告日志數(shù)據(jù)采集系統(tǒng)主講:李強(qiáng)任務(wù)描述系統(tǒng)運(yùn)維和開發(fā)人員可以通過日志了解服務(wù)器軟硬件信息、檢查配置過程中的錯誤及錯誤發(fā)生的原因。經(jīng)常分析日志可以了解服務(wù)器的負(fù)荷,性能安全性,及時(shí)分析相關(guān)問題、追查錯誤根源糾正錯誤。許多公司的業(yè)務(wù)平臺每天都會產(chǎn)生大量的日志數(shù)據(jù)。收集業(yè)務(wù)日志數(shù)據(jù),供離線和在線的分析系統(tǒng)使用,正是日志收集系統(tǒng)的要做的事情?,F(xiàn)有一個(gè)服裝電商網(wǎng)站,與某熱門視頻網(wǎng)站公司廣告部合作,在視頻網(wǎng)站中為用戶推送廣告,要求在網(wǎng)站主頁面需要投放廣告,且保證曝光率不低于1/5;在視頻播放過程中穿插廣告,且保證總曝光量不低于100000次,基于該目標(biāo),將使用Flume模擬廣告日志采集系統(tǒng)的數(shù)據(jù)采集過程。在廣告日志采集系統(tǒng)中有兩種日志類型:一種是廣告系統(tǒng)運(yùn)行過程中產(chǎn)生的日志,是廣告系統(tǒng)在運(yùn)行過程中產(chǎn)生的文件型系統(tǒng)日志;一種是廣告曝光日志,一個(gè)廣告的一次曝光,會產(chǎn)生一條曝光日志。本案例將會模擬實(shí)時(shí)采集系統(tǒng)生成的日志文件catalina.log,并保存到HDFS,接著模擬廣告曝光記錄數(shù)據(jù)的采集,并將廣告曝光記錄數(shù)據(jù)采集并保存至HDFS,所用數(shù)據(jù)為case_data_new.csv,各數(shù)據(jù)字段說明如表8-4所示。任務(wù)描述表8-4case_data_new.csv數(shù)據(jù)字段說明屬性名稱中文名稱示例備注rank記錄序號5(第5條記錄)

dt相對日期3(第3天)單位為天cookiecookie值7083a0cba2acd512767737c65d5800c8

ipIP地址47經(jīng)過脫敏idfaidfa值bc50cc5fb39336cf39e3c9fe1b16bf48可用于識別IOS用戶imeiimei值990de8af5ed0f3744b61770173794555可用于識別Android用戶androidandroid值7730a40b70cf9b023d23e332da846bfb可用于識別Android用戶openudidopenudid值7aaeb5d6af25f9fe918ec39b0f79a2c8可用于識別IOS用戶macmac值6ed9fcefd06a2ab5f901e601a3a53a2d可用于識別不同硬件設(shè)備timestamps時(shí)間戳0(記錄于數(shù)據(jù)區(qū)間的初始時(shí)間點(diǎn))

camp項(xiàng)目ID61520

creativeid創(chuàng)意ID0

mobile_os設(shè)備OS版本信息5.0.2該值為原始值mobile_type機(jī)型'Redmi+Note+3'(設(shè)備為紅米Note3)

app_key_md5appkey信息ffe435bdb6ce18dd4758c0005c4787db

app_name_md5appname信息6f569b4fa576d25fb98e60bda9c97426

placementid廣告位信息72ee620530c7c8cd4b423d4b4502b45b

useragent瀏覽器信息"Mozilla%2f5.0%20%28compatible%3b

mediaid媒體id信息1118

os_typeOS類型標(biāo)記0(采集到的OS類型標(biāo)記為0)

born_timecookie生成時(shí)間160807(第160807日)任務(wù)分析為了貼近真實(shí)的生產(chǎn)環(huán)境,針對廣告日志系統(tǒng)中產(chǎn)生的系統(tǒng)日志和廣告曝光記錄數(shù)據(jù),將通過數(shù)據(jù)模擬產(chǎn)生的方式對數(shù)據(jù)進(jìn)行采集,采集步驟如下。(1)通過腳本定時(shí)抽取數(shù)據(jù)并寫入指定的目錄,模擬系統(tǒng)日志產(chǎn)生的過程。(2)編寫conf腳本實(shí)現(xiàn)采集系統(tǒng)日志,并保存到HDFS文件系統(tǒng)。(3)創(chuàng)建MySQL數(shù)據(jù)表,并通過腳本實(shí)時(shí)導(dǎo)入數(shù)據(jù),模擬曝光記錄產(chǎn)生的過程。(4)編寫conf腳本實(shí)現(xiàn)采集曝光記錄,并保存到HDFS文件系統(tǒng)。8.2.1廣告系統(tǒng)日志數(shù)據(jù)采集廣告系統(tǒng)日志數(shù)據(jù)采集將系統(tǒng)日志catalina.log上傳至Linux系統(tǒng)目錄/opt,并在/opt目錄下創(chuàng)建新文件夾/flumeproject,用于存放抽取的數(shù)據(jù)。在/opt目錄下創(chuàng)建腳本createLog.sh,內(nèi)容如代碼8-10所示,可用于抽取100行數(shù)據(jù),并按日期格式存儲至/flumeproject。代碼8-10腳本createLog.sh的內(nèi)容time=$(date"+%Y%m%d%H%M%S")shuf-n100/opt/catalina.log>/opt/flumeproject/catalina_${time}.log在master主節(jié)點(diǎn)輸入代碼“crontab-e”,打開定時(shí)任務(wù),輸入內(nèi)容“*****sh/opt/createLog.sh”,開始每分鐘抽取100行數(shù)據(jù),模擬系統(tǒng)日志的產(chǎn)生。創(chuàng)建腳本ad-spool-file-hdfs.conf,實(shí)現(xiàn)采集系統(tǒng)日志并保存至HDFS的配置,腳本內(nèi)容如代碼8-11所示。代碼8-11腳本ad-spool-file-hdfs.conf的內(nèi)容ad.sources=r1ad.channels=c1ad.sinks=s1#定義sourcead.sources.r1.type=spooldirad.sources.r1.spoolDir=/opt/flumeprojectad.sources.r1.channels=c1#設(shè)置時(shí)間戳攔截器erceptors=tserceptors.ts.type=timestamp#定義filechannel......省略廣告系統(tǒng)日志數(shù)據(jù)采集將腳本ad-spool-file-hdfs.conf放置在/usr/local/flume/conf/目錄下,啟動FlumeAgent程序采集廣告系統(tǒng)日志數(shù)據(jù),如代碼8-12所示。執(zhí)行代碼8-12,即可在HadoopWeb端口查看/user/root/flumeproject目錄下有系統(tǒng)日志產(chǎn)生,如圖8-8所示。至此,完成廣告系統(tǒng)日志數(shù)據(jù)的模擬產(chǎn)生和采集過程。代碼8-12啟動FlumeAgent采集廣告系統(tǒng)日志數(shù)據(jù)/usr/local/flume/bin/flume-ngagent-c/usr/local/flume/conf-f/usr/local/flume/conf/ad-spool-file-hdfs.conf-nad-Dflume.root.logger=INFO,console圖8-8在HadoopWeb端口查看采集的文件8.2.2廣告曝光日志數(shù)據(jù)采集廣告曝光日志數(shù)據(jù)采集進(jìn)入MySQL命令窗口,創(chuàng)建數(shù)據(jù)庫flume,并在flume下創(chuàng)建廣告日志數(shù)據(jù)表case_data,如代碼8-13所示,用于存放廣告系統(tǒng)日志數(shù)據(jù)。代碼8-13創(chuàng)建廣告日志數(shù)據(jù)表case_datacreatedatabaseflume;useflume;createtablecase_data(`rank`int,dtint,cookievarchar(200),ipvarchar(200),idfavarchar(200),imeivarchar(200),androidvarchar(200),openudidvarchar(200),macvarchar(200),timestampsint,campint,creativeidint,mobile_osint,mobile_typevarchar(200),app_key_md5varchar(200),app_name_md5varchar(200),placementidvarchar(200),useragentvarchar(200),mediaidvarchar(200),os_typevarchar(200),born_timeint);#開啟MySQL的local_infile服務(wù)setgloballocal_infile=1;廣告曝光日志數(shù)據(jù)采集將系統(tǒng)日志case_data_new.csv上傳至Linux系統(tǒng)目錄/opt,在/opt目錄下創(chuàng)建抽取10行數(shù)據(jù)腳本loaddata_mysql.sh,腳本內(nèi)容如代碼8-14所示。代碼8-14腳本loaddata_mysql.sh的內(nèi)容shuf-n10/opt/case_data_new.csv>/opt/mysqltmp.txtmysql-uroot-pPassword123$--local-infile-e"useflume;loaddatalocalinfile'/opt/mysqltmp.txt'intotablecase_datafieldsterminatedby','OPTIONALLYENCLOSEDBY'\"';"在master主節(jié)點(diǎn)輸入代碼“crontab-e”,打開定時(shí)任務(wù),輸入內(nèi)容“*****sh/opt/loaddata_mysql.sh”,開始每分鐘抽取10行數(shù)據(jù),模擬系統(tǒng)日志的產(chǎn)生。將flume-ng-sql-source-1.5.2.jar文件和MySQL連接驅(qū)動放入Flume安裝包的lib目錄。廣告曝光日志數(shù)據(jù)采集創(chuàng)建腳本ad_mysql_memory_hdfs.conf,實(shí)現(xiàn)從MySQL采集系統(tǒng)日志并保存至HDFS的配置,腳本內(nèi)容如代碼8-15所示。代碼8-15腳本ad_mysql_memory_hdfs.conf的內(nèi)容ad.sources=sqlSourcead.channels=c1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論