帶你看懂大數據採集引擎之Flume&採集目錄中的日誌

帶你看懂大數據採集引擎之Flume&採集目錄中的日誌

1、Flume的介紹:數據庫

Flume由Cloudera公司開發,是一種提供高可用、高可靠、分佈式海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各種數據發送方,用於採集數據;同時,flume提供對數據進行簡單處理,並寫到各類數據接收方的能力,若是能用一句話歸納Flume,那麼Flume是實時採集日誌的數據採集引擎。apache

2、Flume的體系結構:緩存

帶你看懂大數據採集引擎之Flume&採集目錄中的日誌


Flume的體系結構分紅三個部分:數據源、Flume、目的地分佈式

數據源種類有不少:能夠來自directory、http、kafka等,flume提供了source組件用來採集數據源。oop

一、source做用:採集日誌大數據

source種類:一、spooling directory source:採集目錄中的日誌ui

二、htttp source:採集http中的日誌人工智能

三、kafka source:採集kafka中的日誌日誌

……blog

採集到的日誌須要進行緩存,flume提供了channel組件用來緩存數據。

二、channel做用:緩存日誌

channel種類:一、memory channel:緩存到內存中(最經常使用)

二、JDBC channel:經過JDBC緩存到關係型數據庫中

三、kafka channel:緩存到kafka中

……

緩存的數據最終須要進行保存,flume提供了sink組件用來保存數據。

三、sink做用:保存日誌

sink種類:一、HDFS sink:保存到HDFS中

二、HBase sink:保存到HBase中

三、Hive sink:保存到Hive中

四、kafka sink:保存到kafka中

……

官網中有flume各個組件不一樣種類的列舉:

帶你看懂大數據採集引擎之Flume&採集目錄中的日誌

3、安裝和配置Flume:

一、安裝:tar -zxvf apache-flume-1.7.0-bin.tar.gz -C ~/training

二、建立配置文件a4.conf:定義agent,定義source、channel、sink並組裝起來,定義生成日誌文件的條件。

如下是a4.conf配置文件中的內容,其中定義了數據源來自目錄、數據緩存到內存中,數據最終保存到HDFS中,而且定義了生成日誌文件的條件:日誌文件大小達到128M或者通過60秒生成日誌文件。

#定義agent名, source、channel、sink的名稱

a4.sources = r1

a4.channels = c1

a4.sinks = k1

#具體定義source

a4.sources.r1.type = spooldir

a4.sources.r1.spoolDir = /root/training/logs

#具體定義channel

a4.channels.c1.type = memory

a4.channels.c1.capacity = 10000

a4.channels.c1.transactionCapacity = 100

#定義攔截器,爲消息添加時間戳

a4.sources.r1.interceptors = i1

a4.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder

#具體定義sink

a4.sinks.k1.type = hdfs

a4.sinks.k1.hdfs.path = hdfs://192.168.157.11:9000/flume/%Y%m%d

a4.sinks.k1.hdfs.filePrefix = events-

a4.sinks.k1.hdfs.fileType = DataStream

#不按照條數生成文件

a4.sinks.k1.hdfs.rollCount = 0

#HDFS上的文件達到128M時生成一個日誌文件

a4.sinks.k1.hdfs.rollSize = 134217728

#HDFS上的文件達到60秒生成一個日誌文件

a4.sinks.k1.hdfs.rollInterval = 60

#組裝source、channel、sink

a4.sources.r1.channels = c1

a4.sinks.k1.channel = c1

4、使用Flume語句採集數據:

一、建立目錄,用於保存日誌:

mkdir /root/training/logs

二、啓動Flume,準備實時採集日誌:

bin/flume-ng.agent -n a4 -f myagent/a4.conf -c conf -Dflume.root.logger=INFO.console

三、將日誌導入到目錄中:

cp * ~/training/logs

5、Sqoop和Flume的相同點和不一樣點:

相同點:sqoop和flume只有一種安裝模式,不存在本地模式、集羣模式等。

不一樣點:sqoop批量採集數據,flume實時採集數據。

做者:李金澤AllenLi,清華大學碩士研究生,研究方向:大數據和人工智能

相關文章
相關標籤/搜索