Flume - 初識

Flume - 初識


一、基本架構

Flume-NG 採用三層架構設計:收集(Source)、暫存(channel)和處理(Sink)。
flume架構.png-107.7kB

一個event在一個agent中傳輸的順序爲:

Source -> Interceptor -> Selector -> Channel -> Sink Processor -> Sink -> 中心存儲/下一級agent

二、核心概念

  1. Event: 一條消息或者說是一條數據,具有可選頭信息,在頭信息中可以設置時間戳、主機名稱等信息。
  2. Source: 數據源,接收或者收集不同形式的數據源。
  3. Channel: event的臨時緩衝區,source先將event發送到chanel緩存等待sink消費。
  4. Sink: 從channel獲取event併發送到中心存儲或者下一級agent。
  5. Agent: 包含source、channel、sink等組件的flume進程。
  6. Interceptor: event攔截器,根據配置文件在event的header中添加時間戳、主機名稱等信息。
  7. Selector: event選擇器,event選擇流入channel的方式,flume提供了複製(replicating)和複用(multiplexing)選擇器。
  8. Sink Processor: event sink處理器,flume提供了故障轉移處理器和負載均衡處理器。

三、組件簡介

3.1 Source

Source用於對接各種數據源,將收集到的事件發送到臨時存儲Channel中。

常用的source類型有:Avro Source、Exec Source、Kafka Source、Taildir Source、Spooling Directory Source等

3.2 Channel

Channel被設計爲Event中轉臨時緩衝區,存儲Source收集並且沒有被Sink讀取的Event,爲平衡Source收集和Sink讀取數據的速度,可視爲Flume內部的消息隊列。Channel線程安全並且具有事務性,支持source寫失敗重複寫和sink讀失敗重複讀等操作。

常用的Channel類型有Memory Channel、File Channel、Kafka Channel等。

3.3 Sink

常用的類型爲 Avro Sink、HDFS Sink、Kafka Sink

四、配置別名

flume配置別名.png-18.9kB

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