網(wǎng)站建設(shè)nuoweb什么是搜索引擎推廣
目錄
安裝包
flume的部署
負(fù)載均衡測(cè)試
故障恢復(fù)
安裝包
在這里給大家準(zhǔn)備好了flume的安裝包
通過(guò)網(wǎng)盤(pán)分享的文件:apache-flume-1.9.0-bin.tar.gz
鏈接: https://pan.baidu.com/s/1DXMA4PxdDtUQeMB4J62xoQ 提取碼: euz7?
--來(lái)自百度網(wǎng)盤(pán)超級(jí)會(huì)員v4的分享
-----------------------------------------------------------------------------------------------
大家自行下載。那么正片開(kāi)始。
flume的部署
首先,我們切換到software目錄
cd /export/software
使用rz命令上傳安裝包
上傳完成后,解壓縮安裝包道,servers目錄
tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /export/servers
解壓縮完成之后!
切換到servers目錄
cd /export/servers
之后,我們進(jìn)行一個(gè)重命名的大動(dòng)作。
mv apache-flume-1.9.0-bin flume
ok,fine,一切完成之后,讓我們切換到conf目錄
cd /export/servers/flume/conf
切換完成之后,開(kāi)始進(jìn)行下一步,
復(fù)制一下文件。
cp flume-env.sh.template flume-env.sh
完成之后,我們輸入ll,查看一下自己是不是安裝成功了。
之后我們輸入。
vi flume-env.sh
進(jìn)入文件,然后輸入shift + g
到達(dá)文件底部,最后貼入自己java的環(huán)境變量。
export JAVA_HOME=/export/servers/jdk
大家根據(jù)自己的實(shí)際情況來(lái)進(jìn)行修改哈,如果不知道自己的java環(huán)境變量是什么的話,可以冒號(hào)wq保存退出之后,在命令行輸入·
vi /etc/profile
然后使用shift+g到達(dá)文件底部。
查看一下自己的環(huán)境變量,再?gòu)?fù)制粘貼到剛才的文件里。
看到這里首先不要著急的去復(fù)制。
來(lái)都來(lái)了,我們順手配置一下flume的環(huán)境變量。
export FLUME_HOME=/export/servers/flume
export PATH=$FLUME_HOME/bin:$PATH
OK,配置完成之后,我們esc保存退出。
之后讓我們來(lái)分發(fā)一下Flume吧。
scp -r /export/servers/flume/ hadoop02:/export/servers/
scp -r /export/servers/flume/ hadoop03:/export/servers/
現(xiàn)在你已經(jīng)分發(fā)完flume了,那么接下來(lái)我們?cè)俜职l(fā)一下環(huán)境變量。
scp -r /etc/profile hadoop02:/etc/
scp -r /etc/profile hadoop02:/etc/
分發(fā)完hadoop02和hadoop03環(huán)境變量,接下來(lái)我們需要分別在hadop02,和hadoop03上輸入
soruce /etc/profile
來(lái)令環(huán)境變量生效。
接下來(lái)我們測(cè)試一下hadoop01的哦配置效果、
切換到hadoop01的data目錄下
cd /export/data
切換完成之后,執(zhí)行
netcat-logger.conf
復(fù)制下面的內(nèi)容帶哦文件里
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
輸入完成之后保存退出。
輸入下面的命令看下效果。
flume-ng agent --name a1 --conf conf/ --conf-file /export/data/netcat-logger.conf -Dflume.root.logger=INFO,console
出現(xiàn)下面的頁(yè)面,就算是成功了。
,那么讓我們?cè)俅未蜷_(kāi)一個(gè)hadoop01窗口,開(kāi)始進(jìn)行一些操作
打開(kāi)另一個(gè)窗口之后,我們
yum -y install telnet
下載一個(gè)telnet包
下載完成之后,連接一下44444端口
telnet localhost 44444
然后另一邊
日志采集到這里就算是完成了。
接下來(lái)使用ctrl+c退出進(jìn)行下一步。兩個(gè)窗口都ctrl+c,然后隨便關(guān)閉一個(gè)。
都干完之后,我們來(lái)到hadop01的flume的conf目錄
cd /export/servers/flume/conf
輸入
vi exec-avro.conf
然后粘貼下面的內(nèi)容,粘貼完成之后,保存退出。
a1.sources = r1
a1.sinks = k1 k2
a1.channels = c1
a1.sources.r1.channels = c1
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /export/data/123.log
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.sinks.k1.channel = c1
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hadoop02
a1.sinks.k1.port = 53421
a1.sinks.k2.channel = c1
a1.sinks.k2.type = avro
a1.sinks.k2.hostname = hadoop03
a1.sinks.k2.port = 53421
a1.sinkgroups = g1
a1.sinkgroups.g1.sinks = k1 k2
a1.sinkgroups.g1.processor.type = load_balance
a1.sinkgroups.g1.processor.backoff = true
a1.sinkgroups.g1.processor.selector = random
a1.sinkgroups.g1.processor.maxTimeOut=10000
輸入完成之后,我切換搭配hadoop02的conf目錄下
vi avro-logger1.conf
染的時(shí)候輸入下面的內(nèi)容
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop02
a1.sources.r1.port = 53421
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
完成之后,切換到hadoop03的虛擬機(jī)
同樣是切換目錄
vi avro-logger2.conf
切換完成之后,我們輸入下面的內(nèi)容
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop03
a1.sources.r1.port = 53421
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
配置完成之后,我們?cè)趆adoop02上執(zhí)行下面的命令,來(lái)啟動(dòng)agent
flume-ng agent --name a1 --conf conf/ --conf-file avro-logger1.conf -Dflume.root.logger=INFO,console
完成之后切換到hadoop03,執(zhí)行下面的命令
flume-ng agent --name a1 --conf conf/ --conf-file avro-logger2.conf -Dflume.root.logger=INFO,console
下面放上hadoop01和hadoop02啟動(dòng)成功的畫(huà)面
之后,我們切換回hadoop01
切換到conf目錄
cd /export/servers/flume/conf
之后輸入下面的命令
flume-ng agent --name a1 --conf conf/ --conf-file exec-avro.conf -Dflume.root.logger=INFO,console
啟動(dòng)成功之后如下圖所示。
ok,一切完成之后,我們開(kāi)始一個(gè)負(fù)載均衡測(cè)試。
負(fù)載均衡測(cè)試
我們?cè)俅未蜷_(kāi)一個(gè)hadop01的窗口
像data目錄下寫(xiě)入,flume flume...
下面的命令每隔兩秒會(huì)向日志追加一條flume flume...
while true;do echo "flume flume..." >> /export/data/123.log;sleep 2;done
hadoop01和hadoop03會(huì)如下圖所示
接下來(lái)我們就可以開(kāi)心的開(kāi)始下一項(xiàng)’
故障恢復(fù)
下面文件里的內(nèi)容,一定要和自己的主機(jī)名搭配起來(lái)!!!!
來(lái)到hadoop01的conf目錄下
cd /export/servers/flume/conf
輸入
vi exec-avro-failover.conf
輸入下面的內(nèi)容
a1.sources = r1
a1.sinks = k1 k2
a1.channels = c1
a1.sources.r1.channels = c1
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /export/data/456.log
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.sinks.k1.channel = c1
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hadoop02
a1.sinks.k1.port = 53422
a1.sinks.k2.channel = c1
a1.sinks.k2.type = avro
a1.sinks.k2.hostname = hadoop03
a1.sinks.k2.port = 53422
a1.sinkgroups = g1
a1.sinkgroups.g1.sinks = k1 k2
a1.sinkgroups.g1.processor.type = failover
a1.sinkgroups.g1.processor.priority.k1 = 5
a1.sinkgroups.g1.processor.priority.k2 = 10
a1.sinkgroups.g1.processor.maxpenalty = 10000
那么好 ,接下來(lái)切換到hadoop02
vi avro-logger3.conf
寫(xiě)入以下內(nèi)容
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop02
a1.sources.r1.port = 53422
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
?
然后wq保存退出
那么再切換到hadoop03
vi avro-logger4.conf
寫(xiě)入下面的內(nèi)容
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop03
a1.sources.r1.port = 53422
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
接下來(lái)切換到hadoop02,輸入
flume-ng agent --name a1 --conf conf/ --conf-file avro-logger3.conf -Dflume.root.logger=INFO,console
接下來(lái)切換到hadoop03
flume-ng agent --name a1 --conf conf/ --conf-file avro-logger4.conf -Dflume.root.logger=INFO,console
接下來(lái)切換到hadoop01的conf目錄下。
cd /export/servers/flume/conf
flume-ng agent --name a1 --conf conf/ --conf-file exec-avro-failover.conf -Dflume.root.logger=INFO,console
全部啟動(dòng)成功之后,我們切換到
hadoop01就可以提開(kāi)始發(fā)揮了
while true;do echo "flume flume..." >> /export/data/456.log;sleep 2;done
音位hadoop03的優(yōu)先級(jí)會(huì)比hadoop02高
所以是hadoop03會(huì)比hadoop02先寫(xiě)入日志
這個(gè)時(shí)候,就要及時(shí)止損,
ctrl+c退出,靜等一會(huì)兒,你就會(huì)發(fā)現(xiàn)
hadoop02上出現(xiàn)了hadoop03上終止的信息。日志記錄不會(huì)被停止‘