開源工具介紹之Flume
阿新 • • 發佈:2018-12-16
是什麼?
一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸系統。
功能
- 收集資料
- 對資料簡單處理,並寫到資料接收方的能力
介紹一下flume的主要元件:
Flume的執行核心是Agent。(一個完整的資料收集工具) Agent主要由source,channel,sink三個元件組成。一個Agent包含多個sources和sink。允許多個Agent連線在一起成多級跳。
- source從client收集資料,傳遞給channel。不同的source,可以接收不同的資料格式。
- sink從channel收集資料,執行在一個獨立執行緒,消費channel中的資料,然後送給外部源或者其他source
- channel連線sources和sinks,作為一個儲存區。接收source的輸出,由sink消費channel的資料。channel中的資料直到進入到下一個channel中或者進入終端才會被刪除。當sink寫入失敗後,可以自動重啟,不會造成資料丟失,因此很可靠。
不同型別的Source,Channel和Sink可以自由組合。組合方式基於使用者設定的配置檔案,非常靈活。比如:Channel可以把事件暫存在記憶體裡,也可以持久化到本地硬碟上。Sink可以把日誌寫入HDFS, HBase,甚至是另外一個Source等等。
還有一些其他的元件:
- client:生產資料,執行在一個獨立執行緒。
- Events:Flume傳輸的資料的基本單位。可以是日誌記錄,物件等。可以從一個地方流向另一個地方,為了保證傳輸一定成功,在送到目的地之前會先快取資料,待資料真正到達目的地後,刪除自己快取的資料。