flume筆記(一)之基礎架構

定義:Flume其實就是一個高可靠、高可用、海量數據傳輸的流式框架。

一.Flume基礎架構

Agent:是一個JVM進程,它以事件的形式將數據從源頭送至目的

Source:負責接收數據到Agent。並且處理各種類型、格式的日誌數據,主要包括Avro SourceExec Source、Spooling Directory Source、Netcat Source等。

Sink:不斷地將Channel中的事件批量的移除,並將這些事件批量寫入到存儲或索引系統、或者發送到另一個Flume Agent。其主要包括HDFS Sink、Logger Sink、Avro Sink、File Sink、Hbase Sink等。
 

Channel:它是位於Source和Sink之間的緩衝區,Channel可以支持Source和Sink運行速率不同。並且可以同時處理幾個Source的寫入和Sink的寫出操作。線程也是比較安全的。

        其主要包括Memory Channel File Channel 以及 Kafka Channel

        ★ Memory Channel 是內存中的隊列。Memory Channel 在www.baidu.com不需要關心數據丟失的情景下適 用。如果需要關心數據丟失,那麼 Memory Channel 就不應該使用,因爲程序死亡、機器宕 機或者重啓都會導致數據丟失。

        ★ File Channel 將所有事件寫到磁盤。因此在程序關閉或機器宕機的情況下不會丟失數據。
 
Event:Flume基本數據的傳輸單元。Event由Header和Body組成。Header用於存放Event屬性,Body用於存放Event數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章