最佳實踐概述
場景描述
使用Flume+Kafka來完成實時流(liu)式(shi)(shi)日志處(chu)理(li),后面再連接(jie)上Storm/Spark Streaming等流(liu)式(shi)(shi)實時處(chu)理(li)技術,從而完成日志實時解(jie)析的(de)目標。如(ru)果(guo)Flume直接(jie)對接(jie)實時計算框架,當(dang)數(shu)據(ju)(ju)采集速(su)(su)度(du)大于數(shu)據(ju)(ju)處(chu)理(li)速(su)(su)度(du),很容易發生數(shu)據(ju)(ju)堆積或者(zhe)數(shu)據(ju)(ju)丟失,而kafka可(ke)以當(dang)做一(yi)(yi)個消息緩存(cun)隊(dui)列,可(ke)以把它理(li)解(jie)為(wei)一(yi)(yi)個數(shu)據(ju)(ju)庫(ku),可(ke)以存(cun)放(fang)一(yi)(yi)段時間的(de)數(shu)據(ju)(ju)。
因此數(shu)(shu)據從數(shu)(shu)據源( HTTP、Log 文件、JMS、監聽端(duan)口數(shu)(shu)據等)到flume再(zai)到Kafka進行消息緩(huan)存,數(shu)(shu)據一方(fang)面可以同步到HDFS做離線計(ji)算,另一方(fang)面可以做實時計(ji)算,可實現數(shu)(shu)據多分發。
技術架構圖
暫無。
方案優勢
把數據存(cun)儲到(dao) HDFS 或者 HBase 等(deng)下游存(cun)儲模塊或者計算模塊時需要考慮(lv)各(ge)種(zhong)復雜(za)的場景,例如并發(fa)寫入的量(liang)以(yi)(yi)及(ji)系統承(cheng)載(zai)壓力(li)(li)、網絡延遲等(deng)問題。Flume 作為靈活的分布(bu)式系統具(ju)(ju)有多(duo)種(zhong)接口,同(tong)時提(ti)供可定制化的管道(dao)。在生產處(chu)(chu)理(li)環節(jie)中,當(dang)生產與(yu)處(chu)(chu)理(li)速度不一(yi)致時,Kafka 可以(yi)(yi)充當(dang)緩存(cun)角色。Kafka 擁(yong)有 partition 結構以(yi)(yi)及(ji)采用 append 追加數據,使 Kafka 具(ju)(ju)有優秀的吞吐能(neng)力(li)(li);同(tong)時其擁(yong)有 replication 結構,使 Kafka 具(ju)(ju)有很高的容(rong)錯性(xing)。所以(yi)(yi)將 Flume 和 Kafka 結合(he)起來(lai),可以(yi)(yi)滿足生產環境(jing)中絕大多(duo)數要求。
前提條件
需已購買Kafka實例、創建Topic,并且已成功消費消息(xi)。
確認(ren)準備(bei) Apache Flume環境(1.6.0以上版本兼容 Kafka)。
確認(ren) Kafka 的 Source、 Sink 組件已經在 Flume 中。
資源規劃
本實踐方(fang)案內容僅涉及Kafka專享(xiang)版實例。
分布式消息服務
Figure 1 分布式消(xiao)息服務
| 資源類型 | 配置項 | 配置明細 | 說明 |
|---|---|---|---|
| 企業中間件 | DMS | Kafka專享實例 | 需已購買kafka專享實例,創建好Topic,并成功消費消息。 |
方案正文
Flume安裝
Apache Flume官網(wang)下載地址://flume.apache.org。
下載apache-flume-1.9.0-bin.tar.gz。
解壓安裝tar -zxvf apache-flume-1.9.0-bin.tar.gz
設置環境變量:
vi ~/.bash_profile
export FLUME_HOME = /usr/local/apache-flume-1.9.0-bin
export PATH = **FLUME_HOME/bin:**PATH
source ~/.bash_profile
修(xiu)改Flume配(pei)置文(wen)件($ FLUME_HOME/conf):
按照模板復制出env.sh配(pei)置文件:cp flume-env.sh.template flume-env.sh
修改(gai)配置文件:vi flume-env.sh,設置JAVA_HOME:
export JAVA_HOME= /usr/local/java/jdk1.8.0_311
驗證Flume安裝是否成功:

至此,已完(wan)成Flume的安裝與驗證。
獲取Kafka實例信息
1.登錄天翼云Kafka專(zhuan)享(xiang)版實例控(kong)制臺。
2.在Kafka專(zhuan)享版頁面(mian),選(xuan)擇對應的實例(li),單擊實例(li)“名稱”,進入實例(li)基(ji)本信息頁面(mian)。
3.在實例(li)的(de)基本信息頁面的(de)連接地址模塊,可獲(huo)取(qu)實例(li)的(de)IP地址與端口。

4.選擇對應的Topic,如需創建Topic,請參考創建Topic。

配置Flume與Kafka互聯
在(zai)$FLUME_HOME/conf下添加連接Kafka的(de)配置文(wen)件:flumetokafka.conf,如(ru)下:

啟動Flume并測試連接情況
啟動Flume:
bin/flume-ng agent --conf conf --conf-file conf/flumetokafka.conf --name flume_kafka -Dflume.root.logger=INFO,console >./data.log 2>&1 &
