一. Flume 事務(wù)
流程圖:

Put 事務(wù)流程:
doPut:將批數(shù)據(jù)先寫入臨時緩沖區(qū) putList
doCommit:檢查 channel 內(nèi)存隊(duì)列是否足夠合并
doRollback:channel 內(nèi)存隊(duì)列空間不足,回滾數(shù)據(jù)
Take 事務(wù)流程:
doTake:將數(shù)據(jù)取到臨時緩沖區(qū) takeList,并將數(shù)據(jù)發(fā)送到 HDFS
doCommit:如果數(shù)據(jù)全部發(fā)送成功,則清除臨時緩沖區(qū) takeList
doRollback:數(shù)據(jù)發(fā)送過程中如果出現(xiàn)異常,rollback 將臨時緩沖區(qū) takeList 中的數(shù)據(jù)歸還給 channel 內(nèi)存隊(duì)列
二. Flume 傳輸流程
流程圖:

重要組件:
4)Channel Selector
Channel Selector 的作用就是選出 Event 將要被發(fā)往哪個 Channel。共有兩種類型,分別是 Replicating Channel Selector (default)(復(fù)制)和 Multiplexing Channel Selector(多路復(fù)用)。
Replicating Selector 會將 source 過來的每一個 Event 發(fā)往所有的 Channel,Multiplexing 會根據(jù)相應(yīng)的原則,將不同的 Event 發(fā)往不同的 Channel。
7)Sink Processor
Sink Processor 共有三種類型,分別是 Default Sink Processor、Load Balancing Sink Processor 和 Failover Sink Processor。
Default Sink Processor 對應(yīng)的是單個的 Sink,Load Balancing Sink Processor 和 Failover Sink Processor 對應(yīng)的是 Sink Group。
Load Balancing Sink Processor 可以實(shí)現(xiàn)負(fù)載均衡的功能,F(xiàn)ailover Sink Processor 可以實(shí)現(xiàn)故障轉(zhuǎn)移的功能。