1. 什麼是 Flume
Apache Flume (https://flume.apache.org/) 是一套由cloudera 推出的自由軟體,其可以想做是一套Extract - Load 系統,能收集日誌、事件、檔案等資料,並將這些資料按照定義的描述,流向到指定的目的端,而目的端可以是資料庫、硬碟目錄位址、hdfs檔案系統等。
特色
- 流程設定簡單
- 可分流
- 可靠度、容錯度高
2. 架構
Flume 很簡單,只分三種元件
- source:從資料發生處接收資料,並以flume的event 傳給一或多個通道,接收的方式有 Avro, Thrift, 資料夾, Netcat, syslog 等。
- channel: channel 是短暫的儲存佇列queue,,從source端收到event到sink接收完成的這段時間,都發生在channel 裡。因此若queue為memory,則擁有高的效能,而queue為file,則可保持資料在這傳輸的暫態中不失。
- sink :將channel 傳來的資料傳遞到目的地。目的地可以是某個sink type ,也可以是另一段開始的source。
以下列出source , channel sink 支援的 資料形態
3. 使用場景
下圖為透過 flume,將apache web server 的log 傳送到hdfs 的流程
下圖為透過 flume agent "foo",將某資料分成三份: hdfs , JMS, 以及串到另一個flume agent "bar"的流程。
4. 詳細資源
官方網站
使用手冊