Apache Flume是一個分佈式、可信任的彈性系統。
功能:
- 支持在日誌系統中定製各類數據發送方,用於收集數據
- Flume提供對數據進行簡單處理,並寫到各種數據接收方的能力
多種數據來源:
- server log : tail -n 10000 a.log | grep fatal / warning
- http : url
- netcate : ip : port
- filesystem : 目錄下,一旦有數據變化
- Console、RPC、Text、Tail、Syslog、Exec等
Flume外部架構
log server與agent是1:1,一個collector對應多個agent。然後將收集數據存入HDFS或Hbase上
Flume使用Event對象來作爲傳遞數據的格式,是內部數據傳輸的最基本單元
Event有兩部分:header(可有可無)和body
代理(Flume Agent)
flume內部有一個或多個Agent,每一個Agent是一個獨立守護進程
Agent主要由source、channel、sink組成
- source:輸入,對接各種數據源
- Channel:緩存(file,memory)
- sink:輸出,對接各種存儲
- 另外兩個可選組件
- interceptor(攔截器)
- selector(選擇器)
--複製(默認):replicating
--複用:multiplexing