Flume簡介

Flume 是Cloudera 提供的日誌收集系統,具有分佈式、高可靠、高可用性等特點,對海量日誌採集、聚合和傳輸,Flume 支持在日誌系統中定製各類數據發送方,同時,Flume 提供對數據進行簡單處理,並寫到各種數據接受方的能力。

Flume 使用java 編寫,其需要運行在Java1.6 或更高版本之上。

Flume 傳輸的數據的基本單位是Event,如果是文本文件,通常是一行記錄,這也是事務的基本單位。Event 從Source,流向Channel,再到Sink,本身爲一個byte 數組,並可攜帶headers信息。Event 代表着一個數據流的最小完整單元,從外部數據源來,向外部的目的地去。

Flume 運行的核心是Agent。它是一個完整的數據收集工具

含有三個核心組件分別是source、channel、sink。通過這些組件,Event 可以從一個地方流向另一個地方,如下圖所示。


source 可以接收外部源發送過來的數據。不同的source,可以接受不同的數據格式。比如有目錄池(spooling directory)數據源,可以監控指定文件夾中的新文件變化,如果目錄中有文件產生,就會立刻讀取其內容。
channel 是一個存儲地,接收source 的輸出,直到有sink 消費掉channel 中的數據。channel 中的數據直到進入到下一個channel 中或者進入終端纔會被刪除。當sink 寫入失敗後,可以自動重啓,不會造成數據丟失,因此很可靠。
sink 會消費channel 中的數據,然後送給外部源或者其他source。如數據可以寫入到HDFS 或者HBase 中。

flume 允許多個agent 連在一起,形成前後相連的多級跳。

發佈了16 篇原創文章 · 獲贊 10 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章