flume架構(gòu)總結(jié)

flume架構(gòu)總結(jié)

介紹flume之前先看一下Hadoop業(yè)務(wù)的整體流程開發(fā):



從hadoop的業(yè)務(wù)流程圖中可以看出寞忿,在大數(shù)據(jù)的業(yè)務(wù)邏輯處理過程中贞盯,對于數(shù)據(jù)的搜集是十分重要的一步,也是不可避免的一步壳快,本文下面將對flume的架構(gòu)進(jìn)行詳細(xì)的介紹洼专。

1.flume概念

flume是一個(gè)分布式、可靠和高可用的海量日志聚合的系統(tǒng)者祖,支持在系統(tǒng)中地址各類數(shù)據(jù)發(fā)送方立莉,用于手機(jī)數(shù)據(jù);同時(shí)七问,flume提供對數(shù)據(jù)進(jìn)行簡單處理蜓耻,并寫到各種數(shù)據(jù)接收方(可定制)的能力。

1.1設(shè)計(jì)目標(biāo)

可靠性

當(dāng)節(jié)點(diǎn)出現(xiàn)故障時(shí)烂瘫,日志能夠被傳送到其他節(jié)點(diǎn)上而不丟失媒熊。flume提供三種級別的可靠性保障,從強(qiáng)到弱依次分為:

  • end-to-end

收集數(shù)據(jù)agent首先將event寫到磁盤上坟比,當(dāng)數(shù)據(jù)傳送成功后芦鳍,再刪除;如果數(shù)據(jù)發(fā)送失敗葛账,可以從新發(fā)送柠衅。

  • Store on failure

這也是scribe采用的策略,當(dāng)數(shù)據(jù)接收方crash時(shí)籍琳,將數(shù)據(jù)寫到本地菲宴,待恢復(fù)后,繼續(xù)發(fā)送趋急。

  • Best effort

數(shù)據(jù)發(fā)送到接收方后喝峦,不會進(jìn)行確認(rèn)。

可擴(kuò)展性

Flume采用了三層架構(gòu)呜达,分別為agent谣蠢,collector和storage,每一層均可以水平擴(kuò)展查近。其中眉踱,所有agent和collector由master統(tǒng)一管理,這使得系統(tǒng)容易監(jiān)控和維護(hù)霜威,且master允許有多個(gè)(使用ZooKeeper進(jìn)行管理和負(fù)載均衡)谈喳,這就避免了單點(diǎn)故障問題。

可管理性

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

功能可擴(kuò)展性

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

2.Event概念

flume的核心就是把數(shù)據(jù)從數(shù)據(jù)源(source)收集過來侄柔,再將收集到的數(shù)據(jù)送到指定的目的地(sink)共啃。為了保證輸送的過程一定成功,在送到目的地之前暂题,會先緩存數(shù)據(jù)(channel)移剪,待數(shù)據(jù)真正的送到目的地(sink)后,flume再刪除緩存中的數(shù)據(jù)(channel中的數(shù)據(jù))薪者。
在整個(gè)數(shù)據(jù)的傳輸過程中纵苛,流動的是event,即事務(wù)保證是在event級別進(jìn)行的言津。那么什么是event呢攻人?——event將傳輸?shù)臄?shù)據(jù)進(jìn)行封裝,是flume傳輸數(shù)據(jù)的基本單位悬槽,如果是文本文件怀吻,通常是一行記錄,event也是事務(wù)的基本單位初婆。event從source蓬坡,流向channel,再到sink烟逊,本身為一個(gè)字節(jié)數(shù)組渣窜,并可攜帶header信息铺根,event代表著一個(gè)數(shù)據(jù)的最小完整單元宪躯,從外部數(shù)據(jù)源來,想外部的目的地去位迂。形象展示如下圖:



一個(gè)完整的event包括:event headers,event body, event信息(即文本文件中的單行記錄)访雪。



其中event就是flume收集到的日志記錄详瑞。

3.flume架構(gòu)介紹

flume的關(guān)鍵就是它的設(shè)計(jì),這個(gè)設(shè)計(jì)就是agent臣缀,啊跟他本身就是一個(gè)java進(jìn)程坝橡,運(yùn)行在日志收集節(jié)點(diǎn)(所謂的日志收集節(jié)點(diǎn)就是服務(wù)器節(jié)點(diǎn))。
agent里面包含三大核心組件:source--->channel--->sink,類似生產(chǎn)者精置、倉庫计寇、消費(fèi)者的架構(gòu)。

  • source

source組件是專門用來收集數(shù)據(jù)的脂倦,可以處理各種類型番宁、各種格式的日志數(shù)據(jù),包括avro赖阻、thrift蝶押、exec、jms火欧、spooling directory棋电、netcat、sequence generator苇侵、syslog赶盔、http、legacy衅檀、自定義數(shù)據(jù)等招刨。

  • channel

source組件把數(shù)據(jù)收集以后,臨時(shí)存放在channel中哀军,即channel組件在agent中是專門用來存放臨時(shí)數(shù)據(jù)的——對采集到的數(shù)據(jù)進(jìn)行簡單的緩存沉眶,可以存放在memory、jdbc杉适、file等谎倔。

  • sink

sink組件是用于把數(shù)據(jù)發(fā)送大目的地 的組件,目的地包括hdfs猿推、logger片习、avro、thrift蹬叭、ipc藕咏、file、null秽五、hbse孽查、solr、自定義坦喘。

4.flume的運(yùn)行機(jī)制

flume的核心就是agent盲再,這個(gè)agent對外有兩個(gè)進(jìn)行交互的地方西设,一個(gè)是接收數(shù)據(jù)的輸入source,一個(gè)是數(shù)據(jù)的數(shù)據(jù)sink答朋,sink負(fù)責(zé)將數(shù)據(jù)發(fā)送到外部指定的目的地贷揽。source接收到數(shù)據(jù)之后,將數(shù)據(jù)發(fā)送給channel梦碗,channel作為一個(gè)數(shù)據(jù)緩沖區(qū)會臨時(shí)存放這些數(shù)據(jù)禽绪,隨后sink會將channel中的數(shù)據(jù)發(fā)送到指定的地方——例如hdfs等。注意:只有在sink將channel中的數(shù)據(jù)發(fā)送成功后洪规,channel才會將臨時(shí)的數(shù)據(jù)進(jìn)行刪除丐一,這種機(jī)制保證了數(shù)據(jù)傳輸?shù)目煽啃耘c安全性。

5.flume的廣義用法

flume之所以這么神奇淹冰,其原因也在于flume可以支持多級flume的agent库车,即flume可以先后相繼,例如sink可以將數(shù)據(jù)寫到下一個(gè)agent的source中樱拴,這樣的話就可以連成串柠衍,可以整體處理。flume還支持扇入(fan-in)晶乔、扇出(fan-out)珍坊。所謂扇入就是source可以接受多個(gè)輸入,所謂扇出就是sink可以將數(shù)據(jù)輸出多個(gè)目的地destination中正罢。


參考博文

http://www.cnblogs.com/oubo/archive/2012/05/25/2517751.html

http://blog.csdn.net/a2011480169/article/details/51544664

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阵漏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子翻具,更是在濱河造成了極大的恐慌履怯,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件裆泳,死亡現(xiàn)場離奇詭異叹洲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)工禾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門运提,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闻葵,你說我怎么就攤上這事民泵。” “怎么了槽畔?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵栈妆,是天一觀的道長。 經(jīng)常有香客問我,道長签钩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任坏快,我火速辦了婚禮铅檩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘莽鸿。我一直安慰自己昧旨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布祥得。 她就那樣靜靜地躺著兔沃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪级及。 梳的紋絲不亂的頭發(fā)上乒疏,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機(jī)與錄音饮焦,去河邊找鬼怕吴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛县踢,可吹牛的內(nèi)容都是我干的转绷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼硼啤,長吁一口氣:“原來是場噩夢啊……” “哼议经!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谴返,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤煞肾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后嗓袱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扯旷,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年索抓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钧忽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逼肯,死狀恐怖耸黑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情篮幢,我是刑警寧澤大刊,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站三椿,受9級特大地震影響缺菌,放射性物質(zhì)發(fā)生泄漏葫辐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一伴郁、第九天 我趴在偏房一處隱蔽的房頂上張望耿战。 院中可真熱鬧,春花似錦焊傅、人聲如沸剂陡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸭栖。三九已至,卻和暖如春握巢,著一層夾襖步出監(jiān)牢的瞬間晕鹊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工暴浦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捏题,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓肉渴,卻偏偏與公主長得像公荧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子同规,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容

  • 博客原文 翻譯作品循狰,水平有限,如有錯(cuò)誤券勺,煩請留言指正绪钥。原文請見 官網(wǎng)英文文檔 引言 概述 Apache Flume...
    rabbitGYK閱讀 11,485評論 13 34
  • 轉(zhuǎn)自http://www.aboutyun.com/thread-8317-1-1.html 問題導(dǎo)讀: 1.Fl...
    大時(shí)代_f479閱讀 2,100評論 0 6
  • 介紹 概述 Apache Flume是為有效收集聚合和移動大量來自不同源到中心數(shù)據(jù)存儲而設(shè)計(jì)的可分布,可靠的关炼,可用...
    ximengchj閱讀 3,526評論 0 13
  • 聲明 我對Flume的研究并不深程腹,這一篇文章來源于2016年3月的某一個(gè)下午對Flume的調(diào)研,僅有一個(gè)下午儒拂,所以...
    AlbertCheng閱讀 3,183評論 0 4
  • Flume架構(gòu)與實(shí)踐 Flume是一款在線數(shù)據(jù)采集的系統(tǒng)寸潦,典型的應(yīng)用場景是作為數(shù)據(jù)的總線,在線的進(jìn)行日志的采集社痛、分...
    mike_zhangliang閱讀 2,103評論 0 2