




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Flume日志收集工具提綱2Flume架構(gòu)3Flume實(shí)驗(yàn)1Flume簡(jiǎn)介 Flume是由Cloudera軟件公司提供的一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),后與2009年被捐贈(zèng)了apache軟件基金會(huì),為hadoop相關(guān)組件之一。尤其近幾年隨著flume的不斷被完善以及升級(jí)版本的逐一推出,特別是flume-ng;同時(shí)flume內(nèi)部的各種組件不斷豐富,用戶在開發(fā)的過程中使用的便利性得到很大的改善,現(xiàn)已成為apachetop項(xiàng)目之一 apacheFlume是一個(gè)從可以收集例如日志,事件等數(shù)據(jù)資源,并將這些數(shù)量龐大的數(shù)據(jù)從各項(xiàng)數(shù)據(jù)資源中集中起來(lái)存儲(chǔ)的工具/服務(wù)。flume具有高可用,分布式,配置工具,其設(shè)計(jì)的原理也是基于將數(shù)據(jù)流,如日志數(shù)據(jù)從各種網(wǎng)站服務(wù)器上匯集起來(lái)存儲(chǔ)到HDFS,HBase等集中存儲(chǔ)器中Flume是什么
當(dāng)節(jié)點(diǎn)出現(xiàn)故障時(shí),日志能夠被傳送到其他節(jié)點(diǎn)上而不會(huì)丟失。Flume提供了三種級(jí)別的可靠性保障,從強(qiáng)到弱依次分別為:end-to-end(收到數(shù)據(jù)agent首先將event寫到磁盤上,當(dāng)數(shù)據(jù)傳送成功后,再刪除;如果數(shù)據(jù)發(fā)送失敗,可以重新發(fā)送。),Storeonfailure(這也是scribe采用的策略,當(dāng)數(shù)據(jù)接收方crash時(shí),將數(shù)據(jù)寫到本地,待恢復(fù)后,繼續(xù)發(fā)送),Besteffort(數(shù)據(jù)發(fā)送到接收方后,不會(huì)進(jìn)行確認(rèn))。Flume可靠性Flume版本區(qū)別 Flume初始的發(fā)行版本目前被統(tǒng)稱為FlumeOG(originalgeneration),屬于cloudera。但隨著Flume功能的擴(kuò)展,F(xiàn)lumeOG代碼工程臃腫、核心組件設(shè)計(jì)不合理、核心配置不標(biāo)準(zhǔn)等缺點(diǎn)暴露出來(lái),尤其是在FlumeOG的最后一個(gè)發(fā)行版本0.94.0中,日志傳輸不穩(wěn)定的現(xiàn)象尤為嚴(yán)重。為了解決這些問題,2011年10月22號(hào),cloudera完成了Flume-728,對(duì)Flume進(jìn)行了里程碑式的改動(dòng):重構(gòu)核心組件、核心配置以及代碼架構(gòu),重構(gòu)后的版本統(tǒng)稱為FlumeNG(nextgeneration);改動(dòng)的另一原因是將Flume納入apache旗下,clouderaFlume改名為ApacheFlume。IBM的這篇文章:FlumeNG:Flume發(fā)展史上的第一次革命,從基本組件以及用戶體驗(yàn)的角度闡述FlumeOG到FlumeNG發(fā)生的革命性變化。Flume用途
比如我們?cè)谧鲆粋€(gè)電子商務(wù)網(wǎng)站,然后我們想從消費(fèi)用戶中訪問點(diǎn)特定的節(jié)點(diǎn)區(qū)域來(lái)分析消費(fèi)者的行為或者購(gòu)買意圖.這樣我們就可以更加快速的將他想要的推送到界面上。實(shí)現(xiàn)這一點(diǎn),我們需要將獲取到的她訪問的頁(yè)面以及點(diǎn)擊的產(chǎn)品數(shù)據(jù)等日志數(shù)據(jù)信息收集并移交給Hadoop平臺(tái)上去分析.而Flume正是幫我們做到這一點(diǎn)?,F(xiàn)在流行的內(nèi)容推送,比如廣告定點(diǎn)投放以及新聞私人定制也是基于次,不過不一定是使用FLume,畢竟優(yōu)秀的產(chǎn)品很多,比如facebook的Scribe,還有Apache新出的另一個(gè)明星項(xiàng)目chukwa,還有淘寶TimeTunnel。提綱1Flume簡(jiǎn)介3Flume實(shí)驗(yàn)2Flume架構(gòu)FlumeNG構(gòu)成 FlumeNG
以agent為最小的獨(dú)立運(yùn)行單位。一個(gè)agent就是一個(gè)JVM。單agent由Source、Sink和Channel三大組件構(gòu)成。
Flume的數(shù)據(jù)流由事件(Event)貫穿始終。事件是Flume的基本數(shù)據(jù)單位,它攜帶日志數(shù)據(jù)(字節(jié)數(shù)組形式)并且攜帶有頭信息,這些Event由Agent外部的Source,比如上圖中的WebServer生成。當(dāng)Source捕獲事件后會(huì)進(jìn)行特定的格式化,然后Source會(huì)把事件推入(單個(gè)或多個(gè))Channel中。可以把Channel看作是一個(gè)緩沖區(qū),它將保存事件直到Sink處理完該事件。Sink負(fù)責(zé)持久化日志或者把事件推向另一個(gè)Source。值得注意的是,F(xiàn)lume提供了大量?jī)?nèi)置的Source、Channel和Sink類型。不同類型的Source、Channel和Sink可以自由組合。組合方式基于用戶設(shè)置的配置文件,非常靈活。比如:Channel可以把事件暫存在內(nèi)存里,也可以持久化到本地硬盤上。Sink可以把日志寫入HDFS,HBase,甚至是另外一個(gè)Source等等。如下圖Flume構(gòu)成核心組件Flume構(gòu)成核心組件-Source
從數(shù)據(jù)發(fā)生器接收數(shù)據(jù),并將接收的數(shù)據(jù)以Flume的event格式傳遞給一個(gè)或者多個(gè)通道channal。Flume
支持
Avro,log4j,syslog
和
httppost(body為json格式)??梢宰寫?yīng)用程序同已有的Source直接打交道,如AvroSource,SyslogTcpSource。也可以寫一個(gè)
Source,以
IPC
或
RPC
的方式接入自己的應(yīng)用,Avro和
Thrift
都可以(分別有
NettyAvroRpcClient
和
ThriftRpcClient
實(shí)現(xiàn)了
RpcClient接口),其中
Avro
是默認(rèn)的
RPC
協(xié)議。具體代碼級(jí)別的
Client
端數(shù)據(jù)接入,可以參考官方手冊(cè)。對(duì)現(xiàn)有程序改動(dòng)最小的使用方式是使用是直接讀取程序原來(lái)記錄的日志文件,基本可以實(shí)現(xiàn)無(wú)縫接入,不需要對(duì)現(xiàn)有程序進(jìn)行任何改動(dòng)。對(duì)于直接讀取文件
Source,有兩種方式: ExecSource:
以運(yùn)行
Linux
命令的方式,持續(xù)的輸出最新的數(shù)據(jù),如
tail-F
文件名
指令,在這種方式下,取的文件名必須是指定的。
ExecSource
可以實(shí)現(xiàn)對(duì)日志的實(shí)時(shí)收集,但是存在Flume不運(yùn)行或者指令執(zhí)行出錯(cuò)時(shí),將無(wú)法收集到日志數(shù)據(jù),無(wú)法保證日志數(shù)據(jù)的完整性。
Flume構(gòu)成核心組件Flume構(gòu)成核心組件-Source SpoolSource:
監(jiān)測(cè)配置的目錄下新增的文件,并將文件中的數(shù)據(jù)讀取出來(lái)。需要注意兩點(diǎn):拷貝到
spool
目錄下的文件不可以再打開編輯;spool
目錄下不可包含相應(yīng)的子目錄。SpoolSource
雖然無(wú)法實(shí)現(xiàn)實(shí)時(shí)的收集數(shù)據(jù),但是可以使用以分鐘的方式分割文件,趨近于實(shí)時(shí)。如果應(yīng)用無(wú)法實(shí)現(xiàn)以分鐘切割日志文件的話,可以兩種收集方式結(jié)合使用。在實(shí)際使用的過程中,可以結(jié)合
log4j
使用,使用
log4j的時(shí)候,將
log4j
的文件分割機(jī)制設(shè)為1分鐘一次,將文件拷貝到spool的監(jiān)控目錄。log4j
有一個(gè)
TimeRolling
的插件,可以把
log4j
分割文件到
spool
目錄?;緦?shí)現(xiàn)了實(shí)時(shí)的監(jiān)控。Flume
在傳完文件之后,將會(huì)修改文件的后綴,變?yōu)?/p>
.COMPLETED(后綴也可以在配置文件中靈活指定)Flume構(gòu)成核心組件Flume構(gòu)成核心組件-channal channal是一種短暫的存儲(chǔ)容器,它將從source處接收到的event格式的數(shù)據(jù)緩存起來(lái),直到它們被sinks消費(fèi)掉,它在source和sink間起著一共橋梁的作用。
當(dāng)前有幾個(gè)
channel
可供選擇,分別是
MemoryChannel,JDBCChannel,FileChannel,PsuedoTransactionChannel。比較常見的是前三種
channel。 MemoryChannel
可以實(shí)現(xiàn)高速的吞吐,但是無(wú)法保證數(shù)據(jù)的完整性。 MemoryRecoverChannel
在官方文檔的建議上已經(jīng)建義使用FileChannel來(lái)替換。 FileChannel保證數(shù)據(jù)的完整性與一致性。在具體配置FileChannel時(shí),建議FileChannel設(shè)置的目錄和程序日志文件保存的目錄設(shè)成不同的磁盤,以便提高效率。 FileChannel
是一個(gè)持久化的隧道(channel),它持久化所有的事件,并將其存儲(chǔ)到磁盤中。因此,即使
Java
虛擬機(jī)當(dāng)?shù)?,或者操作系統(tǒng)崩潰或重啟,再或者事件沒有在管道中成功地傳遞到下一個(gè)代理(agent),這一切都不會(huì)造成數(shù)據(jù)丟失。MemoryChannel
是一個(gè)不穩(wěn)定的隧道,其原因是由于它在內(nèi)存中存儲(chǔ)所有事件。如果
java
進(jìn)程死掉,任何存儲(chǔ)在內(nèi)存的事件將會(huì)丟失。另外,內(nèi)存的空間收到
RAM大小的限制,而
FileChannel
這方面是它的優(yōu)勢(shì),只要磁盤空間足夠,它就可以將所有事件數(shù)據(jù)存儲(chǔ)到磁盤上。Flume構(gòu)成核心組件Flume構(gòu)成核心組件-Sink Sink在設(shè)置存儲(chǔ)數(shù)據(jù)時(shí),可以向文件系統(tǒng)、數(shù)據(jù)庫(kù)、hadoop存數(shù)據(jù),在日志數(shù)據(jù)較少時(shí),可以將數(shù)據(jù)存儲(chǔ)在文件系中,并且設(shè)定一定的時(shí)間間隔保存數(shù)據(jù)。在日志數(shù)據(jù)較多時(shí),可以將相應(yīng)的日志數(shù)據(jù)存儲(chǔ)到Hadoop中,便于日后進(jìn)行相應(yīng)的數(shù)據(jù)分析。Flume
NG多節(jié)點(diǎn)連接提綱1Flume簡(jiǎn)介2Flume架構(gòu)3Flume實(shí)驗(yàn)
在日志服務(wù)器上,web端訪問的日志數(shù)據(jù)會(huì)存放在指定的目錄下,F(xiàn)lume可以監(jiān)聽日志目錄,一旦有新日志數(shù)據(jù),F(xiàn)lum就可以動(dòng)態(tài)采集日志數(shù)據(jù)到大數(shù)據(jù)處理平臺(tái)hadoop,F(xiàn)lume當(dāng)然有多種數(shù)據(jù)源的采集方式,采集完后也可以輸出到多個(gè)目的地。在下面這個(gè)實(shí)驗(yàn)中,我們監(jiān)聽虛擬機(jī)下面的/home/hadoop/log/test.log文件,然后將數(shù)據(jù)采集到我們的hdfs文件系統(tǒng)中。按照以下步驟進(jìn)行實(shí)驗(yàn):
準(zhǔn)備安裝環(huán)境
1:centos6.8虛擬機(jī) 2:Flume安裝包
下載地址:/download.htmFlume實(shí)驗(yàn)Flume安裝
1、進(jìn)入存放flume-1.8.0-bin.tar.gz安裝的目錄執(zhí)行下面的命令tar-xzfflume-1.8.0-bin.tar.gzmvapache-flume-1.8.0-bin/app/flume-1.8.0 2、編輯/etc/profile文件,聲明flume的home路徑和在path加入bin的路徑:exportFLUME_HOME=/app/flume-1.8.0exportFLUME_CONF_DIR=$FLUME_HOME/confexportPATH=$PATH:$FLUME_HOME/bin
編譯配置文件/etc/profile,并確認(rèn)生效source/etc/profileecho$PATH
Flume實(shí)驗(yàn)
3、設(shè)置flume-env.sh配置文件
在$FLUME_HOME/conf下復(fù)制改名flume-env.sh.template為flume-env.sh,修改conf/flume-env.sh配置文件cd/app/flume-1.8.0/confcpflume-env.sh.templateflume-env.shsudoviflume-env.sh
修改配置文件內(nèi)容:JAVA_HOME=
/usr/lib/jdk1.8JAVA_OPTS="-Xms100m-Xmx200m-Dcom.sun.management.jmxremote"
Flume實(shí)驗(yàn)以下進(jìn)行我們數(shù)據(jù)采集實(shí)驗(yàn)的具體配置
1、修改flume-conf配置文件
在$FLUME_HOME/conf目錄下修改perties.template文件,復(fù)制并改名為perties.cd/app/flume-1.8.0/confcpperties.templatepertiessudoviperties
修改flume-conf配置文件內(nèi)容a1.sources=r1a1.sinks=k1a1.channels=c1Flume實(shí)驗(yàn)
a1.sources.r1.type=execmand=tail-F/home/hadoop/log/test.loga1.sources.r1.channels=c1#Describethesinka1.sinks.k1.type=hdfsa1.sinks.k1.channel=c1#指定目錄,flume幫做目的替換a1.sinks.k1.hdfs.path=/flume/events/%y-%m-%d/%H%M/#文件的命名,前綴a1.sinks.k1.hdfs.filePrefix=events-#用本地時(shí)間格式化目錄a1.sinks.k1.hdfs.useLocalTimeStamp=true#下沉后,生成的文件類型,默認(rèn)是Sequencefile,可用Dat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)書主要觀點(diǎn)
- ??谡n題立項(xiàng)申報(bào)書
- 農(nóng)村磚房拆墻合同范本
- 【復(fù)習(xí)大串講】【中職專用】高二語(yǔ)文上學(xué)期期末期末綜合測(cè)試題(二)(職業(yè)模塊)(原卷版)
- 刀出售合同范本
- 吧臺(tái)設(shè)備采購(gòu)合同范例
- 醫(yī)療耗材oem合同范本
- 住房房屋裝修合同范本
- 老舊農(nóng)機(jī)淘汰更新工作方案
- 賣雞銷售合同范例
- 眼底疾病課件教學(xué)課件
- 二元一次方程組應(yīng)用題(50題)
- 2024男性護(hù)膚市場(chǎng)趨勢(shì)洞察
- KYC高客營(yíng)銷培訓(xùn)
- 部編版五年級(jí)語(yǔ)文上冊(cè)快樂讀書吧測(cè)試題及答案
- 《現(xiàn)代家政導(dǎo)論》電子教案 4.2模塊四項(xiàng)目二家政教育發(fā)展認(rèn)知
- 現(xiàn)代家政導(dǎo)論-課件 5.2.2認(rèn)識(shí)我國(guó)家政服務(wù)業(yè)
- DB11∕512-2017 建筑裝飾工程石材應(yīng)用技術(shù)規(guī)程
- 職業(yè)技術(shù)學(xué)院《口腔頜面外科學(xué)》課程標(biāo)準(zhǔn)
- 高中英語(yǔ)北師大版(2019)必修第二冊(cè)Unit 5 Humans and Nature Lesson 1 A sea story 教學(xué)設(shè)計(jì)
- 員工二級(jí)安全教育培訓(xùn)試題及答案
評(píng)論
0/150
提交評(píng)論