doput:將批資料先寫入臨時緩衝區 putlist
docommit:檢查 channel 記憶體佇列是否足夠合併
dorollback:channel 記憶體佇列空間不足,回滾資料
dotake:將資料取到臨時緩衝區 takelist,並將資料傳送到 hdfs
docommit:如果資料全部傳送成功,則清除臨時緩衝區 takelist
dorollback:資料傳送過程中如果出現異常,rollback 將臨時緩衝區 takelist 中的資料歸還給 channel 記憶體佇列
channel selector 的作用就是選出 event 將要被發往哪個 channel。共有兩種型別,分別是replicating channel selector (default)(複製)和multiplexing channel selector(多路復用)。
replicating selector 會將 source 過來的每乙個 event 發往所有的 channel,multiplexing 會根據相應的原則,將不同的 event 發往不同的 channel。
7)sink processor
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 可以實現故障轉移的功能。
Flume資料傳輸事務分析
本文基於thriftsource,memorychannel,hdfssink三個元件,對flume資料傳輸的事務進行分析,如果使用的是其他元件,flume事務具體的處理方式將會不同。一般情況下,用memorychannel就好了,我們公司用的就是這個,filechannel速度慢,雖然提供日誌級別...
Flume事務機制
docommit檢查channel中是否還有足夠的空間來容納putlist中的所有資料,如果有docommit就成功了,putlist中的所有資料就會進入到channel中並清空putlist中的資料。如果檢測的時候發現channel中的空間不足以容納putlist中的資料的時候,事務就會進行回滾 ...
flume執行流程
flume執行流程 source執行channel的doput方法,將接受到的event先放入putlist裡面臨時快取起來,當到達一定的量 batchsize 的時候,執行docommit方法,將putlist中的event放入channel的queue queue的大小是capacity 中,當...