Flume日志收集工具_第1頁
Flume日志收集工具_第2頁
Flume日志收集工具_第3頁
Flume日志收集工具_第4頁
Flume日志收集工具_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Flume日志收集工具提綱2Flume架構(gòu)3Flume實驗1Flume簡介 Flume是由Cloudera軟件公司提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),后與2009年被捐贈了apache軟件基金會,為hadoop相關(guān)組件之一。尤其近幾年隨著flume的不斷被完善以及升級版本的逐一推出,特別是flume-ng;同時flume內(nèi)部的各種組件不斷豐富,用戶在開發(fā)的過程中使用的便利性得到很大的改善,現(xiàn)已成為apachetop項目之一 apacheFlume是一個從可以收集例如日志,事件等數(shù)據(jù)資源,并將這些數(shù)量龐大的數(shù)據(jù)從各項數(shù)據(jù)資源中集中起來存儲的工具/服務(wù)。flume具有高可用,分布式,配置工具,其設(shè)計的原理也是基于將數(shù)據(jù)流,如日志數(shù)據(jù)從各種網(wǎng)站服務(wù)器上匯集起來存儲到HDFS,HBase等集中存儲器中Flume是什么

當(dāng)節(jié)點出現(xiàn)故障時,日志能夠被傳送到其他節(jié)點上而不會丟失。Flume提供了三種級別的可靠性保障,從強到弱依次分別為:end-to-end(收到數(shù)據(jù)agent首先將event寫到磁盤上,當(dāng)數(shù)據(jù)傳送成功后,再刪除;如果數(shù)據(jù)發(fā)送失敗,可以重新發(fā)送。),Storeonfailure(這也是scribe采用的策略,當(dāng)數(shù)據(jù)接收方crash時,將數(shù)據(jù)寫到本地,待恢復(fù)后,繼續(xù)發(fā)送),Besteffort(數(shù)據(jù)發(fā)送到接收方后,不會進行確認(rèn))。Flume可靠性Flume版本區(qū)別 Flume初始的發(fā)行版本目前被統(tǒng)稱為FlumeOG(originalgeneration),屬于cloudera。但隨著Flume功能的擴展,F(xiàn)lumeOG代碼工程臃腫、核心組件設(shè)計不合理、核心配置不標(biāo)準(zhǔn)等缺點暴露出來,尤其是在FlumeOG的最后一個發(fā)行版本0.94.0中,日志傳輸不穩(wěn)定的現(xiàn)象尤為嚴(yán)重。為了解決這些問題,2011年10月22號,cloudera完成了Flume-728,對Flume進行了里程碑式的改動:重構(gòu)核心組件、核心配置以及代碼架構(gòu),重構(gòu)后的版本統(tǒng)稱為FlumeNG(nextgeneration);改動的另一原因是將Flume納入apache旗下,clouderaFlume改名為ApacheFlume。IBM的這篇文章:FlumeNG:Flume發(fā)展史上的第一次革命,從基本組件以及用戶體驗的角度闡述FlumeOG到FlumeNG發(fā)生的革命性變化。Flume用途

比如我們在做一個電子商務(wù)網(wǎng)站,然后我們想從消費用戶中訪問點特定的節(jié)點區(qū)域來分析消費者的行為或者購買意圖.這樣我們就可以更加快速的將他想要的推送到界面上。實現(xiàn)這一點,我們需要將獲取到的她訪問的頁面以及點擊的產(chǎn)品數(shù)據(jù)等日志數(shù)據(jù)信息收集并移交給Hadoop平臺上去分析.而Flume正是幫我們做到這一點?,F(xiàn)在流行的內(nèi)容推送,比如廣告定點投放以及新聞私人定制也是基于次,不過不一定是使用FLume,畢竟優(yōu)秀的產(chǎn)品很多,比如facebook的Scribe,還有Apache新出的另一個明星項目chukwa,還有淘寶TimeTunnel。提綱1Flume簡介3Flume實驗2Flume架構(gòu)FlumeNG構(gòu)成 FlumeNG

以agent為最小的獨立運行單位。一個agent就是一個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捕獲事件后會進行特定的格式化,然后Source會把事件推入(單個或多個)Channel中??梢园袰hannel看作是一個緩沖區(qū),它將保存事件直到Sink處理完該事件。Sink負(fù)責(zé)持久化日志或者把事件推向另一個Source。值得注意的是,F(xiàn)lume提供了大量內(nèi)置的Source、Channel和Sink類型。不同類型的Source、Channel和Sink可以自由組合。組合方式基于用戶設(shè)置的配置文件,非常靈活。比如:Channel可以把事件暫存在內(nèi)存里,也可以持久化到本地硬盤上。Sink可以把日志寫入HDFS,HBase,甚至是另外一個Source等等。如下圖Flume構(gòu)成核心組件Flume構(gòu)成核心組件-Source

從數(shù)據(jù)發(fā)生器接收數(shù)據(jù),并將接收的數(shù)據(jù)以Flume的event格式傳遞給一個或者多個通道channal。Flume

支持

Avro,log4j,syslog

httppost(body為json格式)??梢宰寫?yīng)用程序同已有的Source直接打交道,如AvroSource,SyslogTcpSource。也可以寫一個

Source,以

IPC

RPC

的方式接入自己的應(yīng)用,Avro和

Thrift

都可以(分別有

NettyAvroRpcClient

ThriftRpcClient

實現(xiàn)了

RpcClient接口),其中

Avro

是默認(rèn)的

RPC

協(xié)議。具體代碼級別的

Client

端數(shù)據(jù)接入,可以參考官方手冊。對現(xiàn)有程序改動最小的使用方式是使用是直接讀取程序原來記錄的日志文件,基本可以實現(xiàn)無縫接入,不需要對現(xiàn)有程序進行任何改動。對于直接讀取文件

Source,有兩種方式: ExecSource:

以運行

Linux

命令的方式,持續(xù)的輸出最新的數(shù)據(jù),如

tail-F

文件名

指令,在這種方式下,取的文件名必須是指定的。

ExecSource

可以實現(xiàn)對日志的實時收集,但是存在Flume不運行或者指令執(zhí)行出錯時,將無法收集到日志數(shù)據(jù),無法保證日志數(shù)據(jù)的完整性。

Flume構(gòu)成核心組件Flume構(gòu)成核心組件-Source SpoolSource:

監(jiān)測配置的目錄下新增的文件,并將文件中的數(shù)據(jù)讀取出來。需要注意兩點:拷貝到

spool

目錄下的文件不可以再打開編輯;spool

目錄下不可包含相應(yīng)的子目錄。SpoolSource

雖然無法實現(xiàn)實時的收集數(shù)據(jù),但是可以使用以分鐘的方式分割文件,趨近于實時。如果應(yīng)用無法實現(xiàn)以分鐘切割日志文件的話,可以兩種收集方式結(jié)合使用。在實際使用的過程中,可以結(jié)合

log4j

使用,使用

log4j的時候,將

log4j

的文件分割機制設(shè)為1分鐘一次,將文件拷貝到spool的監(jiān)控目錄。log4j

有一個

TimeRolling

的插件,可以把

log4j

分割文件到

spool

目錄?;緦崿F(xiàn)了實時的監(jiān)控。Flume

在傳完文件之后,將會修改文件的后綴,變?yōu)?/p>

.COMPLETED(后綴也可以在配置文件中靈活指定)Flume構(gòu)成核心組件Flume構(gòu)成核心組件-channal channal是一種短暫的存儲容器,它將從source處接收到的event格式的數(shù)據(jù)緩存起來,直到它們被sinks消費掉,它在source和sink間起著一共橋梁的作用。

當(dāng)前有幾個

channel

可供選擇,分別是

MemoryChannel,JDBCChannel,FileChannel,PsuedoTransactionChannel。比較常見的是前三種

channel。 MemoryChannel

可以實現(xiàn)高速的吞吐,但是無法保證數(shù)據(jù)的完整性。 MemoryRecoverChannel

在官方文檔的建議上已經(jīng)建義使用FileChannel來替換。 FileChannel保證數(shù)據(jù)的完整性與一致性。在具體配置FileChannel時,建議FileChannel設(shè)置的目錄和程序日志文件保存的目錄設(shè)成不同的磁盤,以便提高效率。 FileChannel

是一個持久化的隧道(channel),它持久化所有的事件,并將其存儲到磁盤中。因此,即使

Java

虛擬機當(dāng)?shù)?,或者操作系統(tǒng)崩潰或重啟,再或者事件沒有在管道中成功地傳遞到下一個代理(agent),這一切都不會造成數(shù)據(jù)丟失。MemoryChannel

是一個不穩(wěn)定的隧道,其原因是由于它在內(nèi)存中存儲所有事件。如果

java

進程死掉,任何存儲在內(nèi)存的事件將會丟失。另外,內(nèi)存的空間收到

RAM大小的限制,而

FileChannel

這方面是它的優(yōu)勢,只要磁盤空間足夠,它就可以將所有事件數(shù)據(jù)存儲到磁盤上。Flume構(gòu)成核心組件Flume構(gòu)成核心組件-Sink Sink在設(shè)置存儲數(shù)據(jù)時,可以向文件系統(tǒng)、數(shù)據(jù)庫、hadoop存數(shù)據(jù),在日志數(shù)據(jù)較少時,可以將數(shù)據(jù)存儲在文件系中,并且設(shè)定一定的時間間隔保存數(shù)據(jù)。在日志數(shù)據(jù)較多時,可以將相應(yīng)的日志數(shù)據(jù)存儲到Hadoop中,便于日后進行相應(yīng)的數(shù)據(jù)分析。Flume

NG多節(jié)點連接提綱1Flume簡介2Flume架構(gòu)3Flume實驗

在日志服務(wù)器上,web端訪問的日志數(shù)據(jù)會存放在指定的目錄下,F(xiàn)lume可以監(jiān)聽日志目錄,一旦有新日志數(shù)據(jù),F(xiàn)lum就可以動態(tài)采集日志數(shù)據(jù)到大數(shù)據(jù)處理平臺hadoop,F(xiàn)lume當(dāng)然有多種數(shù)據(jù)源的采集方式,采集完后也可以輸出到多個目的地。在下面這個實驗中,我們監(jiān)聽虛擬機下面的/home/hadoop/log/test.log文件,然后將數(shù)據(jù)采集到我們的hdfs文件系統(tǒng)中。按照以下步驟進行實驗:

準(zhǔn)備安裝環(huán)境

1:centos6.8虛擬機 2:Flume安裝包

下載地址:/download.htmFlume實驗Flume安裝

1、進入存放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實驗

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ù)據(jù)采集實驗的具體配置

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實驗

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-#用本地時間格式化目錄a1.sinks.k1.hdfs.useLocalTimeStamp=true#下沉后,生成的文件類型,默認(rèn)是Sequencefile,可用Dat

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論