Flume學(xué)習(xí)系列(一)----總體介紹

前言:??本文是flume學(xué)習(xí)系列的開篇抖苦,主要介紹了flume的各種組件及相關(guān)配置。但是本篇文章并不打算從環(huán)境搭建開始炎咖,因為比較簡單而且網(wǎng)上資料也很詳盡:

001.jpg

????So,研讀了一下官方文檔练对,特此把Flume的一些重要知識點總結(jié)一下。能力有限税灌,如有錯誤均函,提前感謝各位大佬提出。

我還是前言:我不是人造革菱涤,是真皮边酒。開車之前我們起碼要知道Flume是個什么鬼吧?Flume是一個高可用的狸窘,高可靠的墩朦,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)翻擒,F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方氓涣,用于收集數(shù)據(jù);同時陋气,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理劳吠,并寫到各種數(shù)據(jù)接受方(可定制)的能力。好巩趁,開始飆車痒玩。

一、Architecture

????首先议慰,介紹一下蠢古。。别凹。wait草讶,wait,


002.jpg

????蛤蛤蛤炉菲,這是flume的結(jié)構(gòu)圖:
003.png

????分析一下這個圖堕战,箭頭的指向代表數(shù)據(jù)的流向。數(shù)據(jù)從Web 服務(wù)器 --> Source --> Channel-->Sink-->HDFS拍霜。我們需要關(guān)注的是中間被矩形框起來的部分(Agent)嘱丢,它就是Flume的核心。從名字上我們就能直觀的想到祠饺,Source(源)是用來收集數(shù)據(jù)的越驻,Channel(管道)是用來傳輸數(shù)據(jù)的,Sink(沉槽)是用來存儲數(shù)據(jù)的。
????很簡單伐谈,F(xiàn)lume以Agent為最小的獨立運行單位烂完。一個Agent就是一個JVM進程。單Agent由Source诵棵、Sink和Channel三大組件構(gòu)成抠蚣。上面這種單Agent結(jié)構(gòu)已經(jīng)可以完成很多任務(wù)了,但是履澳,實際中有各種花式需求嘶窄。


004.jpg

????比如:一個電商公司,每天產(chǎn)生很多的交易記錄距贷,這些記錄需要被存儲柄冲,同時公司也可能會對這些記錄進行分析,給用戶實時推薦忠蝗,那就需要把這些產(chǎn)生的數(shù)據(jù)流向不同的目的地现横。這要怎么辦呢?


005.jpg

????不慌阁最,大牛早就想到這些情況了戒祠,F(xiàn)lume中有multi-hop(多跳)、Consolidation(合并)速种、Multiplexing the flow(多路數(shù)據(jù)流)來解決各種花式問題姜盈。
????我認為,multi-hop(多跳)一般用來做緩沖配阵,防止源產(chǎn)生數(shù)據(jù)太快處理不過來馏颂,


006.png

????Consolidation(合并)用來把多個源合并到一個目的地。


007.png

????Multiplexing the flow(多路數(shù)據(jù)流)用來把單個源分發(fā)給多個目的地棋傍。


008.png

二救拉、Configuration

這部分就是如何去使用flume了,flume的配置文件在安裝目錄下的conf/flume.conf舍沙。注意:安裝完flume后近上,這個文件是.template后綴的。我們需要把它拷貝一份拂铡。下面我們通過一個小案例簡單介紹一下flume的配置。netcat通過localhost的44444端口給source發(fā)消息葱绒,最終以日志的形式打印出來感帅。

# Name the components on this agent
# a1是agent名,r1,k1,c1是a1的三個組件
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
#設(shè)置source的一些屬性地淀,這些屬性的key可以從User Guide中查到失球,value是flume已經(jīng)為我們寫好的一些常用source。
#后面我們可以自定義source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
#設(shè)置sink的一些屬性
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
#設(shè)置channel的一些屬性
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
#把source和sink通過channel鏈接起來
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1 

????這就完成了一個最基本的flume配置。然后就是啟動flume实苞。
$ bin/flume-ng agent --conf ../conf --conf-file ../conf/flume.conf --name a1 -Dflume.root.logger=DEBUG,console
????這里有幾個參數(shù)豺撑,--conf后面跟配置文件目錄黔牵,--conf-file后面跟配置文件, --name后面跟要啟動的Agent猾浦。 -D后面跟一些其他的啟動參數(shù),比如日志相關(guān)的金赦。

三音瓷、Source,Channel夹抗,Sink

下面這個表格是Flume為我們提供的現(xiàn)成的Source,Channel偷线,Sink。已經(jīng)可以滿足很多需求了沽甥,如果我們想根據(jù)自己的業(yè)務(wù)需求去定制声邦,可以模仿這些現(xiàn)成的類去寫,準備后面的文章去動手實現(xiàn)一下摆舟。


table1.png

More important,官方文檔十分詳細:準備好起飛了么媳瞪?

009.jpg

官網(wǎng)中的User Guide對這些組件的各種配置描述的十分詳細照宝,炒雞友好。舉個栗子:比較常用的HTTP Source厕鹃,(通過HTTP get或post請求接收事件)文檔中是這樣的:


010.png
011.gif

相應(yīng)的 Channel剂碴、Sink也都一樣。如果需要查詢?nèi)绾闻渲靡涿苯尤ス倬W(wǎng)看。

四洽议、總結(jié)

????我覺得理解和使用flume并不難,但是要實現(xiàn)一些自定義的功能亚兄,就需要研讀一下flume的源碼,然后進行模仿荚坞。還有就是沒有一整套的處理流程去學(xué)習(xí)(從收集數(shù)據(jù)到傳遞到沉槽)菲盾。所以后面決定寫一些Demo,以便于更好的掌握flume懒鉴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市璃俗,隨后出現(xiàn)的幾起案子悉默,更是在濱河造成了極大的恐慌,老刑警劉巖抄课,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跟磨,死亡現(xiàn)場離奇詭異间聊,居然都是意外死亡抵拘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門尚蝌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墩瞳,“玉大人,你說我怎么就攤上這事。” “怎么了般妙?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵相速,是天一觀的道長。 經(jīng)常有香客問我苫拍,道長旺隙,這世上最難降的妖魔是什么绒极? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任垄提,我火速辦了婚禮周拐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妥粟。我一直安慰自己,他們只是感情好滩报,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布锦秒。 她就那樣靜靜地躺著,像睡著了一般惭笑。 火紅的嫁衣襯著肌膚如雪生真。 梳的紋絲不亂的頭發(fā)上沉噩,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天川蒙,我揣著相機與錄音长已,去河邊找鬼昼牛。 笑死康聂,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的恬汁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼脊另,長吁一口氣:“原來是場噩夢啊……” “哼约巷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起载庭,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤囚聚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后顽铸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡星压,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年娜膘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竣贪。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡巩螃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出爷耀,到底是詐尸還是另有隱情,我是刑警寧澤歹叮,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站艘蹋,受9級特大地震影響票灰,放射性物質(zhì)發(fā)生泄漏宅荤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一冯键、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧手报,春花似錦改化、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阳藻。三九已至谈撒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間啃匿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工冒萄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留橙数,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓灯帮,卻偏偏與公主長得像逻住,于是被迫代替她去往敵國和親迎献。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

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