Flume介紹之概念

背景

??????? Flume是由Cloudera公司開源的,分布式可靠高可用的系統,它能夠將不同數據源的海量日志數據進行高效收集、聚合、移動、最后存儲到一個中心化數據存儲系統中。由原來的Flume OG到現在的Flume NG,進行了架構重構,并且現在NG版本完全不兼容原來的OG版本,經過架構重構后,Flume NG更像是一個輕量級的小工具,適應各種方式的日志收集,并支持failover負載均衡

版本

???? 兩個版本:Flume OG和Flume NG

???? Flume OG:0.9.x或cdh3以及更早的版本,由agent、collector、master等組件構成

???? Flume NG:1.x或cdh4以及之后的版本,由Agent、client等組件構成

???? Flume OG存在的問題:

???????????? 1.代碼工程臃腫

?????????? ? 2.核心組件設計不合理

???????????? 3.核心配置不標準

???????????? 4.日志傳輸不穩定

? Flume NG的特點:

????????? ? 1.NG只有一種角色的節點:代理節點(Agent)

??????????? 2.沒有collector,master節點,這是核心組件最核心的變化

??????????? 3.去除了physical nodes,local nodes 的概念和相關內容

??????????? 4.agent節點的組成也發生了變化,脫離了zookeeper

架構設計

??????????

架構優勢

?????? NG在核心組件上進行了大規模的調整

?????? 大大地降低了對用戶的要求,如用戶無需搭建zookeeper集群

??????? 用戶也不用糾結于OG的模糊概念

??????? 有利于Flume和其他技術、hadoop周邊組件的整合

??????? 在功能上更加強大、可擴展性更高

組件

??????? Event:一個數據單元,帶有一個可選的消息頭

?????? Client:是一個將原始log包裝成events并且發送它們到一個或多個agent的實體,在flume的拓撲結構中不是必須的

?????? Agent:一個獨立的flume進程包含組件source,channel,sink,其他組件,它利用這些組件將events從一個節點傳輸到另一個節點或最終目的,是flume流的基礎部分

???????????? Source:負責接收event或通過特殊機制產生event,并將events批量的放到一個或多個Channel,必須至少和一個channel關聯

???????????? Channel:中轉Event的一個臨時存儲,保存有source組件傳遞過來的Event,當sink成功的將event發送到下一個channel或最終目的,event從Channel移除,不同的channel提供的持久化水平是不一樣的

???????????? Sink:負責將event傳輸到下一跳或最終目的,成功后將event從channel移除必須作用一個確切的channel

??????? 其他組件:

????????????? Interceptor:

????????????????? 作用于source,按照預設的順序在必要的地方裝飾和過濾events

???????????? Channel Selector :

????????????????? 允許source基于預設的標準,從所有的channel中,選擇一個或多個Channel

???????????? Sink Processor

?????????????????? 多個sink可以構成一個sink group,Sink Processor 可以通過組中所有sink實現負載均衡,也可以在一個sink失敗時轉移到另一個

????? Flow:Event從源點到達目的點的遷移的抽象

配置實例

??? ? ? 注意:同一個Source可以將數據存儲到多個Channel,實際上是Replication,一個sink只能從一個Channel中讀取數據

???? 1.多個Agent順序連接

??????????

可以將多個Agent順序連接起來,將最初的數據源經過收集,存儲到最終的存儲系統,應該控制這種順序連接的Agent的數量,因為數據流經的路徑變長了,如果不考慮failover的話,出現故障將影響整個Flow上的Agent收集服務

???? 2.多個Agent的數據匯聚到同一個Agent

?????????????

?????? 這種情景應用的場景比較多,比如要收集Web網站的用戶行為日志,Web網站為了可用性使用的負載均衡的集群模式,每個節點都產生用戶行為日志,可以為每個節點都配置一個Agent來單獨收集日志數據,然后多個Agent將數據最終匯聚到一個用來存儲數據存儲系統,如HDFS上

???? 3.多路Agent

???????????

????????? 這種模式,有兩種方式,一種是用來復制,另一種是用來分流

????????? 配置文件中指定selector的type的值為replication:復制

???????? 配置文件中指定selector的type的值為Multiplexing:分流


實現load balance功能

????????


? ? ? ? ? ? ? ? ? a1.sinkgroups = g1

???????????????? a1.sinkgroups.g1.sinks = k1 k2 k3

???????????????? a1.sinkgroups.g1.processor.type = load_balance

???????????????? a1.sinkgroups.g1.processor.backoff= true

???????????????? a1.sinkgroups.g1.processor.selector = round_robin

??????????????? a1.sinkgroups.g1.processor.selector.maxTimeOut = 10000

實現failover功能

?????????????? Failover Sink Processor 能夠實現failover功能,具體流程類似load balance,但是內部處理機制與load balance完全不一樣:Failover Sink Processor維護一個優先級Sink組件的列表,只要有一個Sink可用,Event就被傳遞到下一個組件,如果一個sink能夠成功處理Event,則會加入到一個Pool中,否則就被移除Pool并計算失敗次數,設置一個懲罰因子

? ? ? ? ? a1.sinkgroups = g1

???????? a1.sinkgroups.g1.sinks = k1 k2 k3

???????? a1.sinkgroups.g1.processor.type = failover

???????? a1.sinkgroups.g1.processor.priority.k1=5

???????? a1.sinkgroups.g1.processor.priority.k2=6

??????? a1.sinkgroups.g1.processor.priority.k3=7

?????? a1.sinkgroups.g1.processor.maxpenalty=2000

快速進入安裝配置: Flume介紹之安裝配置?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,791評論 6 545
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,795評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,943評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,057評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,773評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,106評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,082評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,282評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,793評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,507評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,741評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,220評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,929評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,325評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,661評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,482評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,702評論 2 380

推薦閱讀更多精彩內容

  • 這里主要介紹幾種常見的日志的source來源,包括監控文件型,監控文件內容增量,TCP和HTTP。 Spool類型...
    歡醉閱讀 1,415評論 0 10
  • 博客原文 翻譯作品,水平有限,如有錯誤,煩請留言指正。原文請見 官網英文文檔 引言 概述 Apache Flume...
    rabbitGYK閱讀 11,520評論 13 34
  • 介紹 概述 Apache Flume是為有效收集聚合和移動大量來自不同源到中心數據存儲而設計的可分布,可靠的,可用...
    ximengchj閱讀 3,539評論 0 13
  • 一、安裝 1、必備條件 因為要把日志上傳到hdfs上,所以需要以下hadoop依賴包: commons-confi...
    Bottle丶Fish閱讀 353評論 0 1
  • Flume架構與實踐 Flume是一款在線數據采集的系統,典型的應用場景是作為數據的總線,在線的進行日志的采集、分...
    mike_zhangliang閱讀 2,117評論 0 2