可靠的,可擴展的大數據搬運系統,從數據生產者到數據最終目的地之間充當緩衝的角色,平衡數據生產者和消費者,提供穩定的流狀態。apache
主要的目的地以hdsf以及hbase爲主。api
相似的有apache kafka以及facebook的scribe。數組
把數據存儲到hdfs或者hbase並非簡單地調用api那樣簡單,這裏得考慮各類複雜的場景,好比並發寫入的量以及hdfs及hbase的系統壓力,網絡延遲等等問題。網絡
flume設計爲靈活的分佈式系統,提供可定製化的管道,保證不會丟失數據,提供持久的channel併發
每一個agent包括source、channel、sink三大部分
)
source攔截器,修改或刪除事件分佈式
Avro Source
Exec Source
Spooling Directory Source
NetCat Source
Sequence Generator Source
Syslog Sources
Syslog TCP Source
Multiport Syslog TCP Source
Syslog UDP Source
HTTP Source大數據
channel過濾器/選擇器(對事件應用過濾條件,決定事件應該寫入到哪一個source附帶的channel中
)spa
內置channel設計
Memory Channel
File Channel
JDBC Channelcode
channel處理器(處理事件寫入channel
)
sink運行器(事件處理分發
)
sink組(包含多個sink
)
sink處理器(從channel取數據寫入到目的地
)
內置sink
HDFS Sink
Logger Sink
Avro Sink
IRC Sink
File Roll Sink
Null Sink
HBaseSinks
ElasticSearchSink
flume把數據表示爲事件,事件包括byte數組的主體以及map形式的報頭(路由信息
)
內置攔截器
Timestamp Interceptor
Host Interceptor
Static Interceptor
UUID Interceptor
Morpline Interceptor
Regex Filtering Interceptor
Regex Extractor Interceptor
數據能夠表示爲多個獨立記錄
實時推送持續並且量級很大的數據流(若是每幾個小時有幾G的數據,不損害hdfs,不必部署flume
)