Flume簡介、基本概念

1.定義

Flume(水道 )是Cloudera提供的一個高可用的,高可靠的,分佈式的海量日誌採集、聚合和傳輸的系統。Flume基於流式架構,靈活簡單。

最主要的作用是實時讀取服務器本地數據到HDFS

組成架構

在這裏插入圖片描述

組件

Agent

Agent是一個JVM進程,它以事件的形式將數據從源頭送至目的,是Flume數據傳輸的基本單元。

Agent主要有3個部分組成,Source、Channel、Sink。

Source:接受各種數據

Source是負責接收數據到Flume Agent的組件。Source組件可以處理各種類型、各種格式的日誌數據,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。

可以輕量處理數據,如攔截。

用的最多的就是日誌文件

exec、tailDir、spoolDir監控文件的區別

  1. exec是在執行 tailDir命令,監控單個文件,但不能保證數據不丟失;
  2. Spooldir Source 能夠保證數據不丟失,且能夠實現斷點續傳,但延遲較高,不能實時監控;
  3. Taildir Source 既能夠實現斷點續傳,又可以保證數據不丟失,還能夠進行實時監控。

Channel:緩衝區

Channel是位於Source和Sink之間的緩衝區。因此,Channel允許Source和Sink運作在不同的速率上。Channel是線程安全的,可以同時處理幾個Source的寫入操作和幾個Sink的讀取操作。

Flume自帶兩種Channel:Memory Channel和File Channel。

  1. Memory Channel是內存中的隊列。Memory Channel在不需要關心數據丟失的情景下適用。如果需要關心數據丟失,那麼Memory Channel就不應該使用,因爲程序死亡、機器宕機或者重啓都會導致數據丟失。
  2. File Channel將所有事件寫到磁盤。因此在程序關閉或機器宕機的情況下不會丟失數據。

channel selector

  1. replicating:複製

    發送的每個channel

  2. multiplexing:多路複用

    選擇發送

Sink

Sink不斷地輪詢Channel中的事件且批量地移除它們,並將這些事件批量寫入到存儲或索引系統、或者被髮送到另一個Flume Agent。

Sink是完全事務性的。在從Channel批量刪除數據之前,每個Sink用Channel啓動一個事務。批量事件一旦成功寫出到存儲系統或下一個Flume Agent,Sink就利用Channel提交事務。事務一旦被提交,該Channel從自己的內部緩衝區刪除事件。

Sink組件目的地包括hdfs、logger、avro、thrift、ipc、file、null、HBase、solr、自定義。其中hdfs和kafka最常用

Event

傳輸單元,Flume數據傳輸的基本單元,以事件的形式將數據從源頭送至目的地。讀取日誌的時候一次讀一行

Header:事件的一些屬性,key-value

Body:存放該條數據,形式爲字節數組

在這裏插入圖片描述

innode

Linux 中儲存文件元數據的區域就叫做 inode,每個 inode 都有一個號碼,操作系統 用 inode 號碼來識別不同的文件,Unix/Linux 系統內部不使用文件名,而使用 inode 號碼來識別文件

內部原理

在這裏插入圖片描述

sink處理器有三種

  1. defaultProfessor(單個sink)
  2. LoadBalancingProfessor(負載均衡,用的最多)
  3. FailOverProfessor(故障轉移)

自定義攔截器

實際應用

將不同日誌發送到不同文件目錄下

拓撲結構

  1. 簡單串聯

    將數據連接起來了,但是影響速率和有單點故障

  2. 多路複用

    配置多個channel和sink,發送到不同目的地

  3. 負載均衡和故障轉移

在這裏插入圖片描述

Flume 支持使用將多個 sink 邏輯上分到一個 sink 組,sink 組配合不同的 SinkProcessor 可以實現負載均衡和錯誤恢復的功能。

  1. 聚合

    最符合實際應用場景,將多臺服務器的日誌數據採集,並彙總到hdfs、hive等進行處理

自定義

flume可自定義source、sink、interceptpr

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章