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

2021-10-08 22:38:58 字數 1895 閱讀 9716

​ 本文主要記錄我在學習 flume 過程中的一些知識的整理與記錄,預計會做成乙個系列來梳理一下 flume 中的知識,本篇的主要內容為 flume 的組成架構,文中如有疏漏與不足歡迎指正!

​ flume 是 cloudera 提供的乙個高可用的,高可靠的,分布式的海量日誌採集、聚合和傳輸的系統。flume 基於流式架構,靈活簡單。其可以不斷的監聽資料來源來將新產生的資料搬遷至目標,如將新產生的log 日誌資料寫入 hdfs。

​ flume 的組成架構圖如下:

agent 是乙個 jvm 程序,其由三部分組成 source,channel,sink。

agent 以事件(event)的方式將資料從源頭送往目的地。

source

source 是負責接受資料至 agent,flume 本身自帶了非常多的 source,讓其能夠處理各種**和各種格式的日誌資料,當然使用者也可以自定義 source 來滿足使用需求。

sink

sink 負責將資料寫入目的地,其不斷的輪詢 channel 中是否有新的資料並批量的搬移,sink 可以將資料直接寫入檔案儲存系統,也可以將資料發往另乙個 flume agent,在實際應用中 flume 經常與 kafka 進行對接,因此 sink 也可以直接將資料傳送給 kafka。與 source 相同 flume 本身也提高了非常多的 sink 以供使用者向資料發往各種各樣的目的地,當然使用者也可以自定義 sink 來滿足使用需求。

channel

channel 處於 source 與 sink 之間,起到了緩衝的作用,由於 channel 的存在可以允許 sink 寫入資料的速率與 source 獲取資料的速率不同。此外,channel 是執行緒安全的,可以同時處理多個 source 和 sink 的讀取與寫入。但有一點需要注意,可以多個 source 往乙個 channel 寫,也可以乙個channel 發往多個 sink (通過負載均衡或故障轉移的方式),但是不能多個 channel 發往乙個 sink。

flume 自帶倆種 channel,memory channel 和 file channel

memory channel 是記憶體中的佇列,其效率較高,但是缺點是當傳送程式死亡,機器宕機等情況時會導致資料的丟失。

file channel 將事件資料寫入磁碟,因此無需擔心資料丟失的風險,但是效率較 memory 低。

event

flume 的傳輸單元,flume 以 事件(event)的形式將資料從源頭送至目的地,event 由 header 和 body 倆部分組成,header 存放事件的頭資訊,其內部資料為 k-v 的鍵值對形式,body 存放資料本體,其內部為位元組(byte)陣列。

flume 執行後為乙個叫 agent 的 jvm 程序,其能將資料以 event 的形式從資料來源搬遷至目的地。

flume 的三個重要元件為 source,channel,sink

source 接收各種資料**的資料並寫入 channel

sink 通過輪詢的方式判斷 channel 中是否有新資料並批量的從 channel 中移除然後寫入目的地

channel 位於 source 與 sink 之間起到了緩衝區的作用,允許 source 與 sink 的處理速率不同

於 source 與 sink 之間起到了緩衝區的作用,允許 source 與 sink 的處理速率不同

flume 的傳輸資料單位為 event,其由兩部分組成 header 和 body,header 記錄了 event 的一些頭資訊而 body 記錄的是資料本身。

flume學習筆記一

flume在下圖的架構中因sink宕機或其它原因導致sink不能消費可能會出現的問題 前提條件 channel為memory channel,channel selector為replicating 一 架構圖講解 上圖的架構是通過乙個source把資料接過來,然後放到兩個管道裡面 同乙份資料在每個...

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分布式系統中...