更新時(shí)間:2021-12-02 來(lái)源:黑馬程序員 瀏覽量:
Flume的核心角色是Agent,通過(guò)Agent可以從其他服務(wù)中采集數(shù)據(jù),并通過(guò)內(nèi)部event流的形式傳輸?shù)絊ink,并根據(jù)需求最終向下一個(gè)Agent傳輸或者進(jìn)行集中式存儲(chǔ)。
在實(shí)際開(kāi)發(fā)中,F(xiàn)lume需要采集數(shù)據(jù)的類型多種多樣,同時(shí)還會(huì)進(jìn)行不同的中間操作,所以根據(jù)具體需求,可以將Flume日志采集系統(tǒng)分為簡(jiǎn)單結(jié)構(gòu)和復(fù)雜結(jié)構(gòu)。
1. 簡(jiǎn)單結(jié)構(gòu)
當(dāng)需要采集數(shù)據(jù)的生產(chǎn)源比較單一、簡(jiǎn)單的時(shí)候,可以直接使用一個(gè)Agent來(lái)進(jìn)行數(shù)據(jù)采集并最終存儲(chǔ),結(jié)構(gòu)如Flume基本架構(gòu),如下圖所示。
2. 復(fù)雜結(jié)構(gòu)
有時(shí)候需要采集數(shù)據(jù)的數(shù)據(jù)源分布在不同的服務(wù)器上,使用一個(gè)Agent進(jìn)行數(shù)據(jù)采集不再適用,這時(shí)就可以根據(jù)業(yè)務(wù)需求部署多個(gè)Agent進(jìn)行數(shù)據(jù)采集并最終存儲(chǔ),結(jié)構(gòu)如下圖所示。
從圖2可以看出,對(duì)每一個(gè)需要收集數(shù)據(jù)的Web服務(wù)端都搭建了一個(gè)Agent進(jìn)行數(shù)據(jù)采集,接著再將這多個(gè)Agent中的數(shù)據(jù)作為下一個(gè)Agent的Source進(jìn)行采集并最終集中存儲(chǔ)到HDFS中。
除此之外,在開(kāi)發(fā)中還有可能遇到從同一個(gè)服務(wù)端采集數(shù)據(jù),然后通過(guò)多路復(fù)用流分別傳輸并存儲(chǔ)到不同目的地的情況,結(jié)構(gòu)如圖3所示。
從圖3可以看出,根據(jù)具體需求,將一個(gè)Agent采集的數(shù)據(jù)通過(guò)不同的Channel分別流向了不同的Sink,然后再進(jìn)行下一階段的傳輸或存儲(chǔ)(如圖3所示,將多個(gè)Sink數(shù)據(jù)分別進(jìn)行了HDFS集中式存儲(chǔ)、作為JMS消息服務(wù)、作為另一個(gè)Agent的Source)。
猜你喜歡: