Flume安裝部署
- Flume的安裝(非常簡單)
上傳安裝包到數據源所在節點上,實際上不是數據源節點也是可以的,只要運行Flume的這台機器與數據源節點的這台機器能夠通過某種協議進行通信即可。
然后解壓tar –zxvf apache-flume-1.8.0-bin.tar.gz,並修改(mv)文件名為flume
然后進入flume的目錄,修改conf下的flume-env.sh,沒有的話復制(cp)flume-env.sh.template,在里面配置JAVA_HOME為jdk的根目錄。
- 根據數據采集需求配置采集方案,描述在配置文件中(文件名可任意自定義)
- 指定采集方案配置文件,在相應的節點上啟動flume agent
先用一個最簡單的例子來測試一下程序環境是否正常。重點是體會一下Flume三個組件之間該怎么配置。
需求:往一個網絡端口上發送數據,Flume監聽該端口,把這個端口里面接收到的數據收集起來,並下沉到終端上以日志的形式打印出來。
1、 配置采集方案(在flume的conf目錄下新建一個文件)
vi netcat-logger.conf(命名規則:source-sink.conf)
#從網絡端口接受數據,下沉到logger
#采集配置文件,netcat-logger.conf
#定義這個agent中各組件的名字
a1.sources=r1
a1.sinks=k1
a1.channels=c1
#描述和配置source組件:r1
# netcat類型用來監聽端口數據源
a1.sources.r1.type=netcat
a1.sources.r1.bind=localhost
a1.sources.r1.port=44444
#描述和配置sink組件:k1
a1.sinks.k1.type=logger
#描述和配置channel組件,此處使用是內存緩存的方式
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
#描述和配置source channel sink之間的連接關系
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
2、 啟動agent去采集數據
bin/flume-ng agent -c conf –f conf /netcat-logger.conf –n a1 -Dflume.root.logger=INFO,console
示例:
bin/flume-ng agent --conf conf --conf-file conf/netcat-logger.conf --name a1 -Dflume.root.logger=INFO,console
解釋1:
-c conf 指定flume自身的配置文件所在目錄
-f conf/netcat-logger.conf 指定我們所描述的采集方案
-n a1 指定本次啟動agent的名字,與采集方案配置文件中一致
解釋2:
-c (或--conf) : flume自身所需的conf文件路徑
-f (--conf-file) : 自定義的flume配置文件,也就是采集方案文件
-n (--name): 自定義的flume配置文件中agent的name
3、 測試
先要往agent采集監聽的端口上發送數據,讓agent有數據可采。
隨便在一個能跟agent節點聯網的機器上,也可以在本機:telnet agent-hostname port (如:telnet localhost 44444)
注意:如果telnet還沒有安裝,則需要執行yum install -y telnet進行安裝