中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

FLUME NG的基本架構

發布時間:2020-07-15 20:29:16 來源:網絡 閱讀:295 作者:eflypro小普 欄目:云計算

Flume簡介

Flume 是一個cloudera提供的 高可用高可靠,分布式的海量日志收集聚合傳輸系統。原名是 Flume OG (original generation),但隨著 FLume 功能的擴展,Flume OG 代碼工程臃腫、核心組件設計不合理、核心配置不標準等缺點暴露出來,尤其是在 Flume OG 的最后一個發行版本 0.94.0 中,日志傳輸不穩定的現象尤為嚴重,為了解決這些問題,2011 年 10 月 22 號,cloudera 完成了 Flume-728,對 Flume 進行了里程碑式的改動:重構核心組件、核心配置以及代碼架構,重構后的版本統稱為 Flume NG(next generation,改動的另一原因是將 Flume 納入 apache 旗下,cloudera Flume 改名為 Apache Flume)。

FLUME NG

1、NG 只有一種角色的節點:代理節點(agent)。

2、agent 節點的組成也發生了變化。Flume NG 的 agent 由 source、sink、Channel 組成。

flume ng 節點組成圖:

FLUME NG的基本架構

多 Agent 并聯下的架構圖:

FLUME NG的基本架構

Flume 的特性

flume 支持在日志系統中定制各類數據發送方,用于收集數據;同時支持對數據進行簡單處理,并寫到各種數據接受方(比如文本、HDFS、Hbase等)的能力 。

flume 的數據流由事件(Event)貫穿始終。事件是 Flume 的基本數據單位,它攜帶日志數據并且攜帶有頭信息,這些 Event 由 Agent 外部的 Source 生成,當 Source 捕獲事件后會進行特定的格式化,然后 Source 會把事件推入(單個或多個) Channel 中。可以把 Channel 看作是一個緩沖區,它將保存事件直到 Sink 處理完該事件。

Sink 負責持久化日志或者把事件推向另一個 Source。

Flume 具備高可靠性

當節點出現故障時,日志能夠被傳送到其他節點上而不會丟失。Flume提供了三種級別的可靠性保障,從強到弱依次分別為:

1、end-to-end:收到數據agent首先將event寫到磁盤上,當數據傳送成功后,再刪除;如果數據發送失敗,可以重新發送。

2、Store on failure:這也是scribe采用的策略,當數據接收方crash崩潰時,將數據寫到本地,待恢復后,繼續發送。

3、Best effort:數據發送到接收方后,不會進行確認。

Flume 架構組成和核心概念

client: 生產數據的地方,運行在一個獨立的線程。

event: 生產的數據,可以是日志記錄、 avro 對象等,如果是文本文件通常是一行記錄。

agent: flume 核心組件,flume 以 Agent 為最小的獨立運行單位。一個 agent 就是一個 jvm, agent 又是由 source, channel, sink 等構建而成。

agent 由 source, channel, sink 等構建而成:

3.1 Source:從 Client 收集數據,傳遞給 Channel

不同的 source,可以接受不同的數據格式,比如監視外部源–目錄池(spooling directory)數據源,可以監控指定文件夾中的新文件變化,如果目錄中有文件產生,就會立刻讀取其內容。source 組件可以處理各種格式的日志數據,eg:avro Sources、thrift Sources、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定義。

Avro Source:支持Avro協議(實際上是Avro RPC),內置支持|

Thrift Source:支持Thrift協議,內置支持

Exec Source:基于Unix的command在標準輸出上生產數據

JMS Source:從JMS系統(消息、主題)中讀取數據

Spooling Directory Source:監控指定目錄內數據變更

Twitter 1% firehose Source:通過API持續下載Twitter數據,試驗性質

Netcat Source:監控某個端口,將流經端口的每一個文本行數據作為Event輸入

Sequence Generator Source:序列生成器數據源,生產序列數據

Syslog Sources:讀取syslog數據,產生Event,支持UDP和TCP兩種協議

HTTP Source:基于HTTP POST或GET方式的數據源,支持JSON、BLOB表示形式

Legacy Sources:兼容老的Flume OG中Source(0.9.x版本)

詳細參考官網:http://flume.apache.org/FlumeUserGuide.html#flume-sources

3.2、Channel:連接 sources 和 sinks

有點像一個隊列,是一個存儲池,接收 source 的輸出,直到有 sink 消費掉 channel 中的數據,channel 中的數據直到進入下一個 channel 或者進入 sink 才會被刪除,當 sink 寫入失敗后,可以自動重啟,不會造成數據丟失。臨時存放的數據可以存放在memory Channel、jdbc Channel、file Channel、自定義。

Memory Channel:Event數據存儲在內存中

JDBC Channel:Event數據存儲在持久化存儲中,當前Flume Channel內置支持Derby

File Channel:Event數據存儲在磁盤文件中

Spillable Memory Channel:Event數據存儲在內存中和磁盤上,當內存隊列滿了,會持久化到磁盤文件

Pseudo Transaction Channel:測試用途

Custom Channel:自定義Channel實現

詳細參考官網:http://flume.apache.org/FlumeUserGuide.html#flume-channels

3.3、Sink:從Channel收集數據,運行在一個獨立線程

用于把數據發送到目的地的組件目的地包括 hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定義。

詳細參考官網:http://flume.apache.org/FlumeUserGuide.html#flume-sinks

flume可以支持

1、多級 flume的 agent,(即多個 flume 可以連成串,上一個 flume 可以把數據寫到下一個 flume 上)

2、支持扇入(fan-in):source 可以接受多個輸入

3、扇出(fan-out):sink 可以輸出到多個目的地

3.4、其他幾個組件

Interceptor:作用于Source,按照預設的順序在必要地方裝飾和過濾events。

Channel Selector:允許Source基于預設的標準,從所有Channel中,選擇一個或多個Channel

Sink Processor:多個Sink可以構成一個Sink Group。Sink Processor可以通過組中所有Sink實現負載均衡;也可以在一個Sink失敗時轉移到另一個。

FLUME NG的基本架構

睿江云官網鏈接:http://www.eflycloud.com/#register?salesID=6DGNUTUAV

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥江县| 桃江县| 吕梁市| 商城县| 得荣县| 潮州市| 罗田县| 田林县| 醴陵市| 巴彦淖尔市| 怀安县| 博乐市| 色达县| 宁海县| 吴堡县| 茌平县| 遵化市| 玉山县| 米泉市| 乐陵市| 邮箱| 宣城市| 甘洛县| 沽源县| 齐齐哈尔市| 平安县| 岫岩| 财经| 沅江市| 安庆市| 青田县| 舞阳县| 德钦县| 青海省| 云南省| 兰西县| 肥乡县| 施秉县| 金华市| 巍山| 深圳市|