flume安裝配置


1 下載安裝包並解壓

下載地址:http://flume.apache.org/download.html

解壓:tar zxvf apache-flume-1.8.0-bin.tar.gz 

 

2 配置環境變量

 vi ~/.bashrc

配置環境變量:

export FLUME_HOME=/hmaster/flume/apache-flume-1.8.0-bin
export FLUME_CONF_DIR=$FLUME_HOME/con

export PATH=$PATH:$FLUME_HOME/bin

 

讓配置生效

source ..bashrc

 

 配置flume-env.sh文件的JavaHome

 

export JAVA_HOME=/hmaster/javaenv/jdk1.8.0_181

3 Flume部署示例

1 Avro

在/hmaster/flume/apache-flume-1.8.0-bin/conf目錄下新建netcat.conf配置文件

Flume可以通過Avro監聽某個端口並捕獲傳輸的數據,具體配置示例如下:

#那么我們也給這個三個組件分別取名字
a2.sources = r1
a2.channels = c1
a2.sinks = k1

#定義具體的source內容
#這里是執行命令以及下面對應的具體命令
#這個命令執行后的數據返回給這個source
a1.sources.r1.type = netcat

a1.sources.r1.bind = localhost

a1.sources.r1.port = 44444


#定義具體的channel信息
#我們source定義好了,就要來定義我們的channel
a2.channels.c1.type = memory
a2.channels.c1.capacity = 10000
a2.channels.c1.transactionCapacity = 100

#定義具體的sink信息
#這個logger sink,就是將信息直接打印到控制台
#就是打印日志
a2.sinks.k1.type = logger

#最后來組裝我們之前定義的channel和sink
a2.sources.r1.channels = c1
a2.sinks.k1.channel = c1

 

運行FlumeAgent,監聽本機的44444端口

-n  后面對應agent名稱

-c 配置文件目錄

-f 配置文件地址

flume-ng agent -n a1 -c conf -f ../conf/netcat.conf

 

 

// 打開另一終端,通過telnet登錄localhost的44444,輸入測試數據

$ telnet localhost 44444

 

 

// 查看flume收集數據情況

 

 

 

2 Spool

 

1 配置spool.conf用於監控目錄userlogs 的文件,將文件內容發送到本地60000端口

Spool用於監測配置的目錄下新增的文件,並將文件中的數據讀取出來。需要注意兩點:拷貝到spool目錄下的文件不可以再打開編輯、spool目錄下不可包含相應的子目錄。具體配置文件示例如下

#定義agent名稱,source,channel,sink的名稱
#a1就是我們給agent起的名字,我們知道有多個agent,那么我們就是通過這個來進行區別
#我們知道agent包含了三個重要的組件,有source,channel,sink
#那么我們也給這個三個組件分別取名字
a2.sources = r1
a2.channels = c1
a2.sinks = k1

#定義具體的source內容
#這里是執行命令以及下面對應的具體命令
#這個命令執行后的數據返回給這個source
a2.sources.r1.type = spooldir
a2.sources.r1.spoolDir = /home/hadoop/hadoop-2.9.0/userlogs

#定義具體的channel信息
#我們source定義好了,就要來定義我們的channel
a2.channels.c1.type = memory
a2.channels.c1.capacity = 10000
a2.channels.c1.transactionCapacity = 100

#定義具體的sink信息
#就是將數據轉換成Avro Event 然后發送到配置的rpc端口上
a2.sinks.k1.type = avro
a2.sinks.k1.hostname= localhost
a2.sinks.k1.port= 60000

#最后來組裝我們之前定義的channel和sink
a2.sources.r1.channels = c1
a2.sinks.k1.channel = c1

2 配置spool2.conf用於從本地60000端口獲取數據並寫入HDFS

#定義agent名稱,source,channel,sink的名稱
a3.sources = r1
a3.channels = c1
a3.sinks = k1

#定義具體的source內容
a3.sources.r1.type= avro
a3.sources.r1.bind= localhost
a3.sources.r1.port= 60000
#定義具體的channel信息
#我們source定義好了,就要來定義我們的channel
a3.channels.c1.type = memory
a3.channels.c1.capacity = 10000
a3.channels.c1.transactionCapacity = 100

#定義具體的sink信息
a3.sinks.k1.type = hdfs
a3.sinks.k1.hdfs.path = hdfs://192.168.79.2:9000/flume/event2
a3.sinks.k1.hdfs.filePrefix = events-
a3.sinks.k1.hdfs.fileType = DataStream

#最后來組裝我們之前定義的channel和sink
a3.sources.r1.channels = c1
a3.sinks.k1.channel = c1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM