開發與維運

【Flume】(三)Flume 事務、拓撲結構和Flume Agent 內部原理

文章目錄


一、Flume 事務

二、Flume Agent 內部原理

三、Flume 拓撲結構

1、簡單串聯

2、複製和多路複用

3、負載均衡和故障轉移

4、聚合

一、Flume 事務


20200216181043484.png

二、Flume Agent 內部原理


20200216190131487.png

重要組件:

1)ChannelSelector

ChannelSelector 的作用就是選出 Event 將要被髮往哪個 Channel。其共有兩種類型,分別是 Replicating(複製)和 Multiplexing(多路複用)。

ReplicatingSelector 會將同一個 Event 發往所有的 Channel,Multiplexing 會根據相應的原則,將不同的 Event 發往不同的 Channel。

2)SinkProcessor

SinkProcessor 共 有 三 種 類 型 , 分 別 是 DefaultSinkProcessor 、LoadBalancingSinkProcessor 和 FailoverSinkProcessor DefaultSinkProcessor 對 應 的 是 單 個 的 Sink ,LoadBalancingSinkProcessor 和FailoverSinkProcessor 對應的是 Sink Group,LoadBalancingSinkProcessor 可以實現負載均衡的功能,FailoverSinkProcessor 可以實現故障轉移的功能。

三、Flume 拓撲結構


1、簡單串聯

Flume Agent 連接如下:

20200216191432609.png

這種模式是將多個 flume 順序連接起來了,從最初的 source 開始到最終 sink 傳送的目的存儲系統。此模式不建議橋接過多的 flume 數量,flume 數量過多不僅會影響傳輸速率,而且一旦傳輸過程中某個節點 flume 宕機,會影響整個傳輸系統。

2、複製和多路複用

單 source,多 channel、sink連接如下:

20200216191553623.png

Flume 支持將事件流向一個或者多個目的地。這種模式可以將相同數據複製到多個channel 中,或者將不同數據分發到不同的 channel 中,sink 可以選擇傳送到不同的目的地。

3、負載均衡和故障轉移

Flume 負載均衡或故障轉移:

20200216191734831.png

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

4、聚合

20200216191833171.png

這種模式是我們最常見的,也非常實用,日常 web 應用通常分佈在上百個服務器,大者甚至上千個、上萬個服務器。產生的日誌,處理起來也非常麻煩。用 flume 的這種組合方式能很好的解決這一問題,每臺服務器部署一個 flume 採集日誌,傳送到一個集中收集日誌的flume,再由此 flume 上傳到 hdfs、hive、hbase 等,進行日誌分析。

Leave a Reply

Your email address will not be published. Required fields are marked *