必威电竞|足球世界杯竞猜平台

flume
來源:互聯網

Flume是Cloudera提供的一個高可用、高可靠、分布式的海量日志采集、聚合和傳輸的系統。它支持在日志系統中定制各類數據發送方,用于收集數據,并提供對數據進行簡單處理的能力。Flume可以將處理后的數據寫入各種數據接受方,這些接受方可以根據需要進行定制。目前,Flume有兩個版本:Flume-og和Flume-ng。Flume-ng經過重大重構,與Flume-og有很大不同,使用時需要注意區分。

日志收集

Flume最早是Cloudera提供的日志收集系統,目前是apache下的一個孵化項目,Flume支持在日志系統中定制各類數據發送方,用于收集數據。

數據處理

Flume提供對數據進行簡單處理,并寫到各種數據接受方(可定制)的能力。Flume提供了從console(控制臺)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系統),支持TCP和UDP等2種模式),exec(命令執行)等數據源上收集數據的能力。

工作方式

Flume-og采用了多Master的方式。為了保證配置數據的一致性,Flume引入了Apache ZooKeeper,用于保存配置數據,ZooKeeper本身可保證配置數據的一致性和高可用,另外,在配置數據發生變化時,ZooKeeper可以通知Flume Master節點。Flume Master間使用gossip協議同步數據。

Flume-ng最明顯的改動就是取消了集中管理配置的 Master 和 Apache ZooKeeper,變為一個純粹的傳輸工具。Flume-ng另一個主要的不同點是讀入數據和寫出數據現在由不同的工作線程處理(稱為 Runner)。在 Flume-og 中,讀入線程同樣做寫出工作(除了故障重試)。如果寫出慢的話(不是完全失敗),它將阻塞 Flume 接收數據的能力。這種異步的設計使讀入線程可以順暢的工作而無需關注下游的任何問題。

優勢

1. Flume可以將應用產生的數據存儲到任何集中存儲器中,比如hdfs,HBase

2. 當收集數據的速度超過將寫入數據的時候,也就是當收集信息遇到峰值時,這時候收集的信息非常大,甚至超過了系統的寫入數據能力,這時候,Flume會在數據生產者和數據收容器間做出調整,保證其能夠在兩者之間提供平穩的數據

3. 提供上下文路由特征

4. Flume的管道是基于事務,保證了數據在傳送和接收時的一致性.

5. Flume是可靠的,容錯性高的,可升級的,易管理的,并且可定制的。

具有特征

1. Flume可以高效率的將多個網站服務器中收集的日志信息存入hdfs/HBase

2. 使用Flume,我們可以將從多個服務器中獲取的數據迅速的移交給Hadoop

3. 除了日志信息,Flume同時也可以用來接入收集規模宏大的社交網絡節點事件數據,比如facebook,Twitter,電商網站如亞馬遜,flipkart等

4. 支持各種接入資源數據的類型以及接出數據類型

5. 支持多路徑流量,多管道接入流量,多管道接出流量,上下文路由

6. 可以被水平擴展

結構

Agent主要由:source,channel,sink三個組件組成.

Source:

從數據發生器接收數據,并將接收的數據以Flume的event格式傳遞給一個或者多個通道channel,Flume提供多種數據接收的方式,比如Avro,Thrift,Twitter1%等

Channel:

channel是一種短暫的存儲容器,它將從source處接收到的event格式的數據緩存起來,直到它們被sinks消費掉,它在source和sink間起著一共橋梁的作用,channal是一個完整的事務,這一點保證了數據在收發的時候的一致性. 并且它可以和任意數量的source和sink鏈接. 支持的類型有: Java數據庫連接 channel , File System channel , Memort channel等.

sink:

sink將數據存儲到集中存儲器比如HBasehdfs,它從channals消費數據(events)并將其傳遞給目標地. 目標地可能是另一個sink,也可能HDFS,HBase.

參考資料 >

生活家百科家居網