Flume快速入門系列(1) | Flume的簡單介紹

      網友投稿 1082 2022-05-29

      在一個完整的離線大數據處理系統中,除了HDFS+MapReduce+Hive組成分析系統的核心之外,還需要數據采集、結果數據導出、任務調度等不可或缺的輔助系統,而這些輔助工具在hadoop生態體系中都有便捷的開源框架,在此,我們首先來介紹下數據采集部分所用的的開源框架——flume

      目錄

      1. Flume定義

      Flume快速入門系列(1) | Flume的簡單介紹

      2. Flume的優點

      3. Flume采集系統結構圖

      3.1 簡單結構

      3.2 復雜結構

      3.3 Flume組成架構詳解

      3.4 Flume拓撲結構

      4. Flume Agent內部原理

      1. Flume定義

      Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統。Flume基于流式架構,靈活簡單。

      Flume可以采集文件,socket數據包、文件、文件夾、kafka等各種形式源數據,又可以將采集到的數據(下沉sink)輸出到HDFS、hbase、hive、kafka等眾多外部存儲系統中

      一般的采集需求,通過對flume的簡單配置即可實現

      Flume針對特殊場景也具備良好的自定義擴展能力,因此,flume可以適用于大部分的日常數據采集場景。

      那么我們為什么要選用Flume呢?

      2. Flume的優點

      可以和任意存儲進程集成。

      輸入的的數據速率大于寫入目的存儲的速率,flume會進行緩沖,減小hdfs的壓力。

      flume中的事務基于channel,使用了兩個事務模型(sender + receiver),確保消息被可靠發送。

      Flume使用兩個獨立的事務分別負責從soucrce到channel,以及從channel到sink的事件傳遞。一旦事務中所有的數據全部成功提交到channel,那么source才認為該數據讀取完成。同理,只有成功被sink寫出去的數據,才會從channel中移除。

      3. Flume采集系統結構圖

      3.1 簡單結構

      單個agent采集數據

      3.2 復雜結構

      多級agent之間串聯

      3.3 Flume組成架構詳解

      1. Agent

      Agent是一個JVM進程,它以事件的形式將數據從源頭送至目的。

      Agent主要有3個部分組成,Source、Channel、Sink。

      2.Source

      Source是負責接收數據到Flume Agent的組件。Source組件可以處理各種類型、各種格式的日志數據,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。

      3. Channel

      Channel是位于Source和Sink之間的緩沖區。因此,Channel允許Source和Sink運作在不同的速率上。Channel是線程安全的,可以同時處理幾個Source的寫入操作和幾個Sink的讀取操作。

      Flume自帶兩種Channel:Memory Channel和File Channel。

      Memory Channel是內存中的隊列。Memory Channel在不需要關心數據丟失的情景下適用。如果需要關心數據丟失,那么Memory Channel就不應該使用,因為程序死亡、機器宕機或者重啟都會導致數據丟失。

      File Channel將所有事件寫到磁盤。因此在程序關閉或機器宕機的情況下不會丟失數據。

      4. Sink

      Sink不斷地輪詢Channel中的事件且批量地移除它們,并將這些事件批量寫入到存儲或索引系統、或者被發送到另一個Flume Agent。

      Sink是完全事務性的。在從Channel批量刪除數據之前,每個Sink用Channel啟動一個事務。批量事件一旦成功寫出到存儲系統或下一個Flume Agent,Sink就利用Channel提交事務。事務一旦被提交,該Channel從自己的內部緩沖區刪除事件。

      Sink組件目的地包括hdfs、logger、avro、thrift、ipc、file、null、HBase、solr、自定義。

      5. Event

      傳輸單元,Flume數據傳輸的基本單元,以事件的形式將數據從源頭送至目的地。 Event由可選的header和載有數據的一個byte array 構成。Header是容納了key-value字符串對的HashMap。

      3.4 Flume拓撲結構

      1. Flume Agent連接

      這種模式是將多個flume給順序連接起來了,從最初的source開始到最終sink傳送的目的存儲系統。此模式不建議橋接過多的flume數量, flume數量過多不僅會影響傳輸速率,而且一旦傳輸過程中某個節點flume宕機,會影響整個傳輸系統。

      2. 單source,多channel、sink

      Flume支持將事件流向一個或者多個目的地。這種模式將數據源復制到多個channel中,每個channel都有相同的數據,sink可以選擇傳送的不同的目的地。

      3. Flume負載均衡

      Flume支持使用將多個sink邏輯上分到一個sink組,flume將數據發送到不同的sink,主要解決負載均衡和故障轉移問題。

      4. Flume Agent聚合

      這種模式是我們最常見的,也非常實用,日常web應用通常分布在上百個服務器,大者甚至上千個、上萬個服務器。產生的日志,處理起來也非常麻煩。用flume的這種組合方式能很好的解決這一問題,每臺服務器部署一個flume采集日志,傳送到一個集中收集日志的flume,再由此flume上傳到hdfs、hive、hbase、jms等,進行日志分析。

      4. Flume Agent內部原理

      好了。本期的分享到此結束!

      看 完 就 贊 , 養 成 習 慣 ! ! ! \color{#FF0000}{看完就贊,養成習慣?。。 看完就贊,養成習慣?。?!^ _ ^ ?? ?? ??

      碼字不易,大家的支持就是我堅持下去的動力。后不要忘了關注我哦!

      Hadoop

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

      上一篇:萌妹子Python入門指北(二)
      下一篇:聊聊身邊的嵌入式,智能電表丨【拜托了,物聯網!】
      相關文章
      亚洲av手机在线观看| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲精品免费观看| 亚洲精品国产成人影院| 亚洲日韩精品国产3区| 亚洲www77777| 亚洲色精品三区二区一区| 亚洲国产成人久久| 亚洲午夜成激人情在线影院| 亚洲成人福利在线观看| 亚洲性无码av在线| 亚洲成人黄色在线| 亚洲图片激情小说| 亚洲一区二区三区无码国产| 亚洲av成人综合网| 亚洲色偷偷综合亚洲AV伊人蜜桃| 狠狠色香婷婷久久亚洲精品| 亚洲免费福利在线视频| 亚洲AV无码无限在线观看不卡| 亚洲中文字幕久久精品蜜桃| 亚洲欧洲精品成人久久曰| 亚洲国产成人精品无码区二本| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲av永久无码| 亚洲国产精品自在拍在线播放 | 亚洲国产天堂久久综合| 亚洲国产精品尤物YW在线观看| 久久影院亚洲一区| 久久久久久a亚洲欧洲aⅴ| 亚洲成熟xxxxx电影| 亚洲综合激情视频| 亚洲伊人久久大香线蕉结合| 亚洲毛片基地4455ww| 亚洲精品无码专区在线| xvideos亚洲永久网址| 中文国产成人精品久久亚洲精品AⅤ无码精品| 亚洲综合色自拍一区| 水蜜桃亚洲一二三四在线 | 色噜噜噜噜亚洲第一| av在线亚洲欧洲日产一区二区| 亚洲乱码日产一区三区|