<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Flume一文深入淺出

          共 2613字,需瀏覽 6分鐘

           ·

          2021-04-02 17:18

          本文來源:http://r6d.cn/bdvqa


          Flume簡介

          Flume概述:

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

          Flume是什么?

          Flume是流式日志采集工具,F(xiàn)Lume提供對數(shù)據(jù)進行簡單處理并且寫到各種數(shù)據(jù)接收方(可定制)的能力,F(xiàn)lume提供從本地文件(spooling directory source)、實時日志(taildir、exec)、REST消息、Thift、Avro、Syslog、Kafka等數(shù)據(jù)源上收集數(shù)據(jù)的能力。

          Flume能干什么?

          • 提供從固定目錄下采集日志信息到目的地(HDFS,HBase,Kafka)能力。
          • 提供實時采集日志信息(taidir)到目的地的能力。
          • FLume支持級聯(lián)(多個Flume對接起來),合并數(shù)據(jù)的能力。
          • Flume支持按照用戶定制采集數(shù)據(jù)的能力。

          Flume在FusionInsight中的位置:

          位置

          圖:Flume在FusionInsight中的位置

          Flume是收集、聚合事件流數(shù)據(jù)的分布式框架。

          Flume系統(tǒng)架構(gòu)

          Flume基礎架構(gòu):

          基礎架構(gòu)

          圖:Flume基礎架構(gòu)圖

          Flume基礎架構(gòu):Flume可以單節(jié)點直接采集數(shù)據(jù),主要應用于集群內(nèi)數(shù)據(jù)。

          Flume多agent架構(gòu):

          多agent架構(gòu)

          圖:Flume多agent架構(gòu)

          Flume多agent架構(gòu):Flume可以將多個節(jié)點連接起來,將最初的數(shù)據(jù)源經(jīng)過收集,存儲到最終的存儲系統(tǒng)中。主要應用于集群外的數(shù)據(jù)導入到集群內(nèi)。

          Flume架構(gòu):

          架構(gòu)

          圖:Flume架構(gòu)圖

          各組件具體介紹如下:

          • events:Flume當中對數(shù)據(jù)的一種封裝。是一個數(shù)據(jù)單元。flume傳輸數(shù)據(jù)最基本的單元。

          • Interceptor:攔截器,主要作用是將采集到的數(shù)據(jù)根據(jù)用戶的配置進行過濾和修飾。

          • Channel Selector:通道選擇器,主要作用是根據(jù)用戶配置將數(shù)據(jù)放到不同的Channel當中。

          • Channel:主要作用是臨時的緩存數(shù)據(jù)。

          • Sink Runner:sink的運行器,主要是通過它來驅(qū)動Sink Processor,Sink Processor驅(qū)動Sink來從Channel當中獲取數(shù)據(jù)。

          • Sink Processor:主要策略有,負載均衡,故障轉(zhuǎn)移以及直通。

          • Sink:主要作用是從Channel當中取出數(shù)據(jù),并將數(shù)據(jù)放到不同的目的地。

          基本概念- Source:

          Source負責接收events或通過特殊機制產(chǎn)生events,并將events批量放到一個或多個Channels。有驅(qū)動和輪詢2中類型的Source。

          • 驅(qū)動型Source:是外部主動發(fā)送數(shù)據(jù)給Flume,驅(qū)動Flume接收數(shù)據(jù)。
          • 輪詢source:是FLume周期性主動去獲取數(shù)據(jù)。

          Source必須至少和一個channel關聯(lián)。

          Source的類型如下:

          Source類型

          基本概念 - Channel:

          Channel位于Source和Sink之間,Channel的作用類似隊列,用于臨時緩存進來的events,當Sink成功地將events發(fā)送到下一跳的channel或最終目的,events從Channel移除。

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

          • Memory Channel:不會持久化。消息存放在內(nèi)存中,提供高吞吐,但提供可靠性;可能丟失數(shù)據(jù)。
          • File Channel:對數(shù)據(jù)持久化;基于WAL(預寫式日志W(wǎng)rite-Ahaad Log)實現(xiàn)。但是配置較為麻煩,需要配置數(shù)據(jù)目錄和checkpoint目錄;不同的file channel均需要配置一個checkpoint目錄。
          • JDBC Channel:基于嵌入式Database實現(xiàn)。內(nèi)置derby數(shù)據(jù)庫,對event進行了持久化,提供高可靠性;可以取代同樣持久特性的file channel。

          Channels支持事物,提供較弱的順序保證,可以連接任何數(shù)量的Source和Sink。

          基本概念 - Sink:

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

          必須作用于一個確切的channel。

          Sink類型:

          Sink類型

          Flume關鍵特性介紹

          Flume支持采集日志文件:

          Flume

          圖:Flume采集日志文件

          Flume支持將集群外的日志文件采集并歸檔到HDFS、HBase、Kafka上,供上層應用對數(shù)據(jù)分析、清洗數(shù)據(jù)使用。

          Flume支持多級級聯(lián)和多路復制:

          級聯(lián)

          圖:Flume級聯(lián)

          Flume支持將多個Flume級聯(lián)起來,同時級聯(lián)節(jié)點內(nèi)部支持數(shù)據(jù)復制。

          這個場景主要應用于:收集FusionInsight集群外上的節(jié)點上的日志,并通過多個Flume節(jié)點,最終匯聚到集群當中。

          Flume級聯(lián)消息壓縮、加密:

          壓縮

          圖:Flume級聯(lián)消息壓縮、加密

          Flume級聯(lián)節(jié)點之間的數(shù)據(jù)傳輸支持壓縮和加密,提升數(shù)據(jù)傳輸效率和安全性。

          在同一個Flume內(nèi)部進行傳輸時,不需要加密,為進程內(nèi)部的數(shù)據(jù)交換。

          Flume數(shù)據(jù)監(jiān)控:

          監(jiān)控

          圖:Flume數(shù)據(jù)監(jiān)控

          Source接收的數(shù)據(jù)量,Channel緩存的數(shù)據(jù)量,Sink寫入的數(shù)據(jù)量,這些都可以通過Manager圖形化界面呈現(xiàn)出來。

          Flume傳輸可靠性:

          可靠

          圖:Flume傳輸可靠性原理

          Flume在傳輸數(shù)據(jù)過程中,采用事物管理方式,保證數(shù)據(jù)傳輸過程中數(shù)據(jù)不會丟失,增強了數(shù)據(jù)傳輸?shù)目煽啃?,同時緩存在channel中的數(shù)據(jù)如果采用了file channel,進程或者節(jié)點重啟數(shù)據(jù)不會丟失。

          出錯

          圖:Flume傳輸過程中出錯情況

          Flume在傳輸數(shù)據(jù)過程中,如果下一跳的Flume節(jié)點故障或者數(shù)據(jù)接收異常時,可以自動切換到另外一路上繼續(xù)傳輸。

          Flume傳輸過程中數(shù)據(jù)過濾:

          過濾

          圖:過濾原理 Flume在傳輸數(shù)據(jù)過程中,可以見到的對數(shù)據(jù)簡單過濾、清洗,可以去掉不關心的數(shù)據(jù),同時如果需要對復雜的數(shù)據(jù)過濾,需要用戶根據(jù)自己的數(shù)據(jù)特殊性,開發(fā)過濾插件,F(xiàn)lume支持第三方過濾插件調(diào)用


          瀏覽 68
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  逼操| 日韩不卡一区 | 豆花AV在线免费观看 | 福利在线观看中文字幕 | 我爱大香蕉伊人久久 |