1、Flume概念
flume是分布式日志收集系統,将各個伺服器的資料收集起來并發送到指定地方。
Flume是Cloudera提供的一個高可用、高可靠、分布式的海量日志采集、聚合和傳輸的系統。Flume支援在日志系統中定制各類資料發送方,用于收集資料;同時,Flume提供對資料進行簡單處理,并寫到各種資料接收方(可定制)的能力。

2、Event的概念
flume的核心:把資料從資料源source收集過來,再将收到的資料發送到指定的目的地sink。發送到sink之前,會先緩存到channel,待資料真正到達sink後,flume再删除自己緩存的資料。事務保證在event級别進行。
event将傳輸的資料進行封裝,是flume傳輸資料的基本機關,如果是文本檔案,通常是一行記錄,event也是事務的基本機關。
event本身是一個位元組數組,可以攜帶headers資訊。
3、flume架構
flume本身是一個agent,是一個java程序,運作在日志收集節點。
agent包含三個核心元件:source > channel > sink。
source:專門用于收集資料,支援console、RPC、text、tail、syslog、exec。
channel:對采集到的資料進行簡單緩存,可以存放在記憶體、檔案、jdbc等
sink:用于把資料發送到目的地,支援HDFS、console、text、RPC、syslogTCP
4、flume運作機制
flume支援多級flume,即sink可以将資料寫入下一個agent的source,進而連成串,整體處理。flume還支援扇入(source可以接收多個輸入)、扇出(sink可以将資料輸出到多個目的地)。
5、flume主要用于大資料處理的資料采集層,如日志采集。
作者:AmyZYX
出處:http://www.cnblogs.com/amyzhu/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。