1. 程式人生 > >開源工具介紹之Flume

開源工具介紹之Flume

是什麼?

一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸系統。

功能

  • 收集資料
  • 對資料簡單處理,並寫到資料接收方的能力

介紹一下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傳輸的資料的基本單位。可以是日誌記錄,物件等。可以從一個地方流向另一個地方,為了保證傳輸一定成功,在送到目的地之前會先快取資料,待資料真正到達目的地後,刪除自己快取的資料。

資料流模型

在這裡插入圖片描述