Flume 應(yīng)用場景及架構(gòu)原理

      網(wǎng)友投稿 1011 2025-04-02

      flume 是什么?


      flume是一個分布式、可靠、和高可用的海量日志聚合的系統(tǒng),支持在系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。

      Flume 特點

      1、可靠性

      當節(jié)點出現(xiàn)故障時,日志能夠被傳送到其他節(jié)點上而不會丟失。Flume提供了三種級別的可靠性保障,從強到弱依次分別為:end-to-end(收到數(shù)據(jù)agent首先將event寫到磁盤上,當數(shù)據(jù)傳送成功后,再刪除;如果數(shù)據(jù)發(fā)送失敗,可以重新發(fā)送。),Store on failure(這也是scribe采用的策略,當數(shù)據(jù)接收方crash時,將數(shù)據(jù)寫到本地,待恢復(fù)后,繼續(xù)發(fā)送),Best effort(數(shù)據(jù)發(fā)送到接收方后,不會進行確認)。

      2、可擴展性

      Flume采用了三層架構(gòu),分別為agent,collector和storage,每一層均可以水平擴展。其中,所有agent和collector由master統(tǒng)一管理,這使得系統(tǒng)容易監(jiān)控和維護,且master允許有多個(使用ZooKeeper進行管理和負載均衡),這就避免了單點故障問題。

      3、可管理性

      所有agent和colletor由master統(tǒng)一管理,這使得系統(tǒng)便于維護。多master情況,F(xiàn)lume利用ZooKeeper和gossip,保證動態(tài)配置數(shù)據(jù)的一致性。用戶可以在master上查看各個數(shù)據(jù)源或者數(shù)據(jù)流執(zhí)行情況,且可以對各個數(shù)據(jù)源配置和動態(tài)加載。Flume提供了web 和shell script command兩種形式對數(shù)據(jù)流進行管理。

      4、功能可擴展性

      用戶可以根據(jù)需要添加自己的agent,collector或者storage。此外,F(xiàn)lume自帶了很多組件,包括各種agent(file, syslog等),collector和storage(file,HDFS等)。

      5、文檔豐富,社區(qū)活躍

      Flume 已經(jīng)成為 Hadoop 生態(tài)系統(tǒng)的標配,它的文檔比較豐富,社區(qū)比較活躍,方便我們學習。

      Flume OG 與 Flume NG 的對比

      Flume 應(yīng)用場景及架構(gòu)原理

      1、Flume OG

      Flume OG:Flume original generation 即Flume 0.9.x版本,它由agent、collector、master等組件構(gòu)成。

      2、Flume NG

      Flume NG:Flume next generation ,即Flume 1.x版本,它由Agent、Client等組件構(gòu)成。

      3、Flume NG版本的優(yōu)點

      1)相對于Flume OG版本,F(xiàn)lume NG版本代碼比較簡單。

      2)相對于Flume OG版本,F(xiàn)lume NG版本架構(gòu)簡潔。

      接下來我們重點講解 Flume NG。

      Flume NG基本架構(gòu)

      Flume NG是一個分布式、可靠、可用的系統(tǒng),它能夠?qū)⒉煌瑪?shù)據(jù)源的海量日志數(shù)據(jù)進行高效收集、聚合、移動,最后存儲到一個中心化數(shù)據(jù)存儲系統(tǒng)中。由原來的Flume OG到現(xiàn)在的Flume NG,進行了架構(gòu)重構(gòu),并且現(xiàn)在NG版本完全不兼容原來的OG版本。經(jīng)過架構(gòu)重構(gòu)后,F(xiàn)lume NG更像是一個輕量的小工具,非常簡單,容易適應(yīng)各種方式日志收集,并支持failover和負載均衡。

      Flume NG 的架構(gòu)圖如下所示:

      Flume NG核心概念

      Flume的架構(gòu)主要有一下幾個核心概念:

      1、Event:一個數(shù)據(jù)單元,帶有一個可選的消息頭。

      2、Flow:Event從源點到達目的點的遷移的抽象。

      3、Client:操作位于源點處的Event,將其發(fā)送到Flume Agent。

      4、Agent:一個獨立的Flume進程,包含組件Source、Channel、Sink。

      5、Source:用來消費傳遞到該組件的Event。

      6、Channel:中轉(zhuǎn)Event的一個臨時存儲,保存有Source組件傳遞過來的Event。

      7、Sink:從Channel中讀取并移除Event,將Event傳遞到Flow Pipeline中的下一個Agent(如果有的話)

      下面我們分別介紹以上幾個核心的概念:

      Event

      1、Event 是Flume數(shù)據(jù)傳輸?shù)幕締卧?/p>

      2、Flume 以事件的形式將數(shù)據(jù)從源頭傳輸?shù)阶罱K的目的。

      3、Event 由可選的header和載有數(shù)據(jù)的一個byte array構(gòu)成。

      1)載有的數(shù)據(jù)對Flume是不透明的。

      2)Header 是容納了key-value字符串對的無序集合,key在集合內(nèi)是唯一的。

      3)Header 可以在上下文路由中使用擴展。

      Client

      1、Client 是一個將原始log包裝成events并且發(fā)送它們到一個或者多個agent的實體。

      2、Client 在Flume的拓撲結(jié)構(gòu)中不是必須的,它的目的是從數(shù)據(jù)源系統(tǒng)中解耦Flume

      Agent

      1、一個Agent包含Source、Channel、Sink和其他組件。

      2、它利用這些組件將events從一個節(jié)點傳輸?shù)搅硪粋€節(jié)點或最終目的地。

      3、agent是Flume流的基礎(chǔ)部分。

      4、Flume 為這些組件提供了配置、生命周期管理、監(jiān)控支持。

      Agent之Source

      1、Source負責接收event或通過特殊機制產(chǎn)生event,并將events批量的放到一個或多個Channel。

      2、Source包含event驅(qū)動和輪詢兩種類型。

      3、Source 有不同的類型。

      1)與系統(tǒng)集成的Source:Syslog,NetCat。

      2)自動生成事件的Source:Exec

      3)用于Agent和Agent之間的通信的IPC Source:Avro、Thrift。

      4、Source必須至少和一個Channel關(guān)聯(lián)。

      Agent之Channel與Sink

      Agent之Channel

      1、Channel位于Source和Sink之間,用于緩存進來的event。

      2、當Sink成功的將event發(fā)送到下一跳的Channel或最終目的地,event才Channel中移除。

      3、不同的Channel提供的持久化水平也是不一樣的:

      1)Memory Channel:volatile。

      2)File Channel:基于WAL實現(xiàn)。

      3)JDBC Channel:基于嵌入Database實現(xiàn)。

      4、Channel支持事物,提供較弱的順序保證。

      5、Channel可以和任何數(shù)量的Source和Sink工作。

      Agent之Sink

      1、Sink負責將event傳輸?shù)较乱惶蜃罱K目的,成功完成后將event從Channel移除。

      2、有不同類型的Sink:

      1)存儲event到最終目的的終端Sink。比如HDFS,HBase。

      2)自動消耗的Sink。比如:Null Sink。

      3)用于Agent間通信的IPC sink:Avro。

      3、Sink必須作用于一個確切的Channel。

      存儲 大數(shù)據(jù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:進銷存軟件管理指南:從入門到精通的實用技巧
      下一篇:生產(chǎn)企業(yè)MES制造系統(tǒng),提高效率和管理的利器
      相關(guān)文章
      亚洲免费在线视频播放| 亚洲国产精品ⅴa在线观看| 欧美色欧美亚洲另类二区| 亚洲欧洲日韩极速播放| 亚洲制服丝袜精品久久| 91亚洲自偷手机在线观看| 亚洲卡一卡2卡三卡4卡无卡三| 亚洲不卡中文字幕无码| 亚洲AV无码乱码在线观看裸奔| 亚洲AV无码一区二区乱子伦| 亚洲AV无码专区国产乱码电影| 亚洲国产精品无码久久久秋霞2| 亚洲精品无码久久久久去q| 亚洲香蕉网久久综合影视| 中文字幕精品亚洲无线码二区 | 亚洲av无码不卡久久| 亚洲一级毛片免费观看| 亚洲入口无毒网址你懂的| 亚洲第一成人在线| 亚洲欧美日韩综合久久久久| 久久精品国产亚洲AV| 亚洲国产aⅴ综合网| 久久精品国产精品亚洲艾草网美妙| 国产亚洲精品激情都市| 亚洲日韩激情无码一区| 国产偷v国产偷v亚洲高清| 亚洲成人在线网站| 亚洲性色高清完整版在线观看| 激情亚洲一区国产精品| 亚洲欧美国产国产综合一区| 亚洲AV成人精品日韩一区| 国产精品亚洲一区二区在线观看| 男人的天堂av亚洲一区2区| 日韩亚洲国产综合久久久| 亚洲欧洲精品成人久久奇米网| 亚洲综合熟女久久久30p| 亚洲爱情岛论坛永久| 亚洲熟妇色自偷自拍另类| 亚洲视频一区二区三区四区| 国产精品亚洲一区二区在线观看| 亚洲国产综合人成综合网站|