Flume學習筆記(三)Flume 內部機制

2021-10-08 23:45:32 字數 1775 閱讀 5687

​ 本篇是 flume 學習筆記的第三篇,主要整理 flume 的事務機制以及 event 如何在 agent 中流轉的整個過程。

​ 為了保證資料的不丟失,flume 框架在 agent 程序中加入了倆個事物機制,分布為 source --> channel 和 channel --> sink,示意圖如下:

take 事務

上圖中 sink 從 channel 中拉取資料的過程即 take 事務,其同樣分文三個階段 dotake,docommit,dorollback

​ 通過 agent 內部的事務機制,flume 能夠保證正常運**況下資料不會丟失,但是其並不能保證資料的不重複,例如在 sink 寫入 hdfs 的過程中 hdfs 沒有正常的響應那麼可能導致 sink 再次傳送相同的資料導致資料重複寫入。

​ 在學習筆記第一篇中有講過 agent 內部包含三個元件 source,channel,sink 而資料就是從 source 到 channel 再到 sink,但這中間還有不少細節,本節就來剖析一下中間的細節,首先還是先來一張流程圖,然後逐個講解。

source 接受資料並將其包裝成乙個 event 物件

source 將 event 傳送給 channel processor

channel processor 將 event 發往***鏈,之所以叫***鏈是因為其可以串聯多個***。還記得 event 是由 header 和 body 組成的嗎,body 中記錄了資料而 header 的值是有***寫入的,***可以過濾不需要的 event 也可以在 event 的 header 中寫入資訊以供後續 channel selector 使用

channel selector 接收經過***鏈的 event 資料並根據配置的 channel selector 型別來將 event 發往 channel,channel selector 有倆種型別:replication 和 multiplexing

將當前事件的去往的 channel 傳送給 channel processor

channel processor 將 event 推送至相應的 channel

根據相應的 sink processor 的型別執行相應的 take 操作

loadbalancing sink porcessor:在此型別下可以將多個 sink 配置為一組,channel 將資料以輪詢的方式傳送給組內所有 sink

failober sink processor:同樣需要將多個 sink 配置為一組,但與 loadbalancing 不同的是 channel 只會將資料傳送給乙個 sink 而當其故障後才會將資料轉而傳送給組內的另乙個 sink,可以在組內配置 sink 的優先順序這樣就可以指定改發往那個 sink。

flume 的 agent 內部有完善的事務機制,通過 put 和 take 事務 flume 能夠保證在正常運**況下資料不丟失

flume 可以通過 interceptor 和 channel selector 來對同乙個 source 接收的資料進行分類處理

erceptor 和 channel selector 來對同乙個 source 接收的資料進行分類處理

負載均衡與故障轉移的 sink processor 都需要配置 sink group 來使得 channel 將資料按組的方式來傳送

Flume學習筆記

agent1.sources source1 agent1.sinks sink1 agent1.channels channel1 agent1.sources source1.channels channel1 agent1.sinks sink1.channel channel1 agent1...

Flume學習筆記

一,flume概述 flume是乙個分布式,可靠的,高可用的海量日誌採集,聚合和傳輸系統。flume的作用 支援在日誌系統中定製各類資料的傳送方,用於收集資料 同時,flume提供對資料進行簡單處理,並寫到各資料的接受方 比如文字,hdfs,hbase等 的功能。二,組成 1 flume分布式系統中...

Flume學習筆記(一)Flume 組成架構

本文主要記錄我在學習 flume 過程中的一些知識的整理與記錄,預計會做成乙個系列來梳理一下 flume 中的知識,本篇的主要內容為 flume 的組成架構,文中如有疏漏與不足歡迎指正!flume 是 cloudera 提供的乙個高可用的,高可靠的,分布式的海量日誌採集 聚合和傳輸的系統。flume...