一、Flume 事務
流程圖
Put 事務流程
doPut:將批數據先寫入臨時緩沖區 putList
doCommit:檢查 channel 內存隊列是否足夠合並
doRollback:channel 內存隊列空間不足,回滾數據
Take 事務流程
doTake:將數據取到臨時緩沖區 takeList,並將數據發送到 HDFS
doCommit:如果數據全部發送成功,則清除臨時緩沖區 takeList
doRollback:數據發送過程中如果出現異常,rollback 將臨時緩沖區 takeList 中的數據歸還給 channel 內存隊列
二、Flume 傳輸流程
流程圖
重要組件:
Channel Selector 的作用就是選出 Event 將要被發往哪個 Channel。共有兩種類型,分別是 Replicating Channel Selector (default)(復制)和 Multiplexing Channel Selector(多路復用)。
Replicating Selector 會將 source 過來的每一個 Event 發往所有的 Channel,Multiplexing 會根據相應的原則,將不同的 Event 發往不同的 Channel。
Sink Processor 共有三種類型,分別是 Default Sink Processor、Load Balancing Sink Processor 和 Failover Sink Processor。
Default Sink Processor 對應的是單個的 Sink,Load Balancing Sink Processor 和 Failover Sink Processor 對應的是 Sink Group。
Load Balancing Sink Processor 可以實現負載均衡的功能,Failover Sink Processor 可以實現故障轉移的功能。