Flume官方文檔閱讀01

Flume1.9用戶指南

介紹
概述:
Apache Flume是一個分佈式的、可靠的、易獲得的系統,用於從多個不同來源高效收集、聚合、移動大規模日誌數據到一箇中心化的數據倉庫。
Apache Flume的作用不僅僅侷限在日誌數據的聚合,由於數據源是可定製的,Flume可以用於大量事件數據的傳輸,包括網絡流量數據、社交媒體生成的數據、電子郵箱數據和許多可能的數據來源。

系統要求:
1、JRE-1.8及以上
2、內存-足夠的內存用來配置sources、channels、sinks
3、磁盤空間-足夠的磁盤空間用於配置channels、sinks
4、文件權限-agent擁有讀寫文件的權限

結構:
數據流模型:
Flume事件定義爲具有字節有效負載和可選字符串屬性集合的數據流單元。Flume代理是一個虛擬機進程,它承載着事件從一個外部來源流向下一個目標點的組件。

Flume source消費外部源(比如web server)傳遞給它的事件。外部源使用目標源能夠識別的格式向Flume發送事件。比如,Avro(序列化) Flume源可以用於從Avro客戶端或者從Avro sink發送事件的流中的其他Flume代理接收Avro事件。可以使用Thrift Flume Source 定義類似的流來從Thrift Sink或Flume Thrift RPC客戶端或者Thrift客戶端接收事件,這些客戶端可以是Flume Thrift協議生成的任何語言編寫的。當一個Flume Source接收到一個事件,source會把事件存在一個或多個channel中。channel是一個被動的存儲器,他可以存儲事件直到其被Flume sink消耗。比如file channel,它由本地文件系統支持。sink從channel中移除事件,並將其存儲在一個外部存儲庫,比如HDFS(通過Flume HDFS sink)或者將其發送到流中下一個Flume代理的Flume source。給定代理中的source和sink與通道中暫存的事件異步進行。

複雜的流:
Flume允許用戶建立一個多躍點的流,在這個流中,事件需要經過多個Flume代理才能到達最終目的地。Flume也允許扇入和扇出流、上下文路由和故障跳躍的備份路由(故障轉移)。

可靠性:
事件運行在每個代理的channel中。然後將事件傳遞到流中的下一個代理或者終端存儲庫(HDFS)。事件只有在下一個代理的channel中運行後或存儲在終端存儲庫之後纔會從channel中移除。這就是Flume中單節點消息傳遞語義如何保證流中端到端的可靠性。

Flume使用事務方法來保證事件傳遞的可靠性。source和sink分別在事務中封裝由信道提供的事務中放置或提供的事件的存儲/檢索。這確保了事件的集合可以可靠的從流中的一個點傳遞到另一個點。在多節點流中,前一個躍點到sink和後一個躍點到source運行着事務來確保數據安全的運行在下一個躍點到channel中。

可恢復性:
事件運行在channel中,channel管理從故障的回覆,Flume支持持久文件channel,這由本地文件系統支撐。還有內存channel,它將事件簡單點存儲在內存隊列中,這很快速,但是當代理進程死亡時仍在內存channel中的事件無法恢復。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章