Flume的數據流是由事件貫穿的。事件是Flume的基本數據單元,它攜帶日誌數據(以字節數組的形式)和頭信息。這些事件是由代理外部的源生成的。當源捕獲事件時,它將被專門格式化,然後源將事件推入(單個或多個)通道。您可以將信道視為壹個緩沖區,它將保存事件,直到接收器完成對它的處理。
接收器負責保存日誌或將事件推送到另壹個源。
當壹個節點出現故障時,日誌可以傳輸到其他節點而不會丟失。Flume提供了三個級別的可靠性保證,從強到弱:
端到端(代理收到數據後,先將事件寫入磁盤,數據傳輸成功後再刪除;如果數據傳輸失敗,可以重新傳輸。)
失敗時存儲(這也是scribe采用的策略。當數據接收器崩潰時,它在本地寫入數據,並在恢復後繼續發送數據)。
Besteffort(數據發送到接收方後,不會確認)。
還是靠渠道。建議使用FileChannel,事件持久化在本地文件系統(性能差)。