flume執行流程:
source執行channel的doput方法,將接受到的event先放入putlist裡面臨時快取起來,當到達一定的量(batchsize)的時候,執行docommit方法,
將putlist中的event放入channel的queue(queue的大小是capacity)中,當sink執行時,會呼叫channel的dotake方法,將取出的event放入到takelist中,
同時還會把event傳送到下游,如果傳送失敗,takelist中的event資料會全部放回channel中。channel在執行docommit方法的時候,會對儲存容量進行判斷,
如果putlist的size比takelist的size大。表示放入的event比取出的多,也就是說還有部分event資料沒有被取出傳送到下游,如果在keepalive的時間內,
putlist中所有的event的body位元組總數在bytecapacity 的容量內沒有可用的空間時,就丟擲異常。總的來說就是channel中event占用太多記憶體,空間不夠用
Flume 事務與傳輸流程
doput 將批資料先寫入臨時緩衝區 putlist docommit 檢查 channel 記憶體佇列是否足夠合併 dorollback channel 記憶體佇列空間不足,回滾資料 dotake 將資料取到臨時緩衝區 takelist,並將資料傳送到 hdfs docommit 如果資料全部傳送...
storm流程 flume和kafka的連線
flume和kafka的連線參考部落格 flume,kafka,storm,mysql的整合 相關資源在這flume2kafka相關jar包及配置檔案 若想連線起flume和kafka,需要在flume conf目錄下,建立乙個.conf檔案,在lib目錄下新增相關jar包。步驟 1.在flume ...
flume的執行機制是什麼?
1 flume分布式系統中最核心的角色是agent,flume採集系統就是由乙個個agent所連線起來形成 2 每乙個agent相當於乙個資料傳遞員 m1 內部有三個元件 a source 採集源,用於跟資料來源對接,以獲取資料 b sink 下沉地,採集資料的傳送目的,用於往下一級agent傳遞資...