安装部署Flume
1.安装nc
yum install nmap-ncat.x86_64 -y
2.下载flume地址
http://flume.apache.org/download.html
如下图所示下载flume-1.5.2-bin.tar.gz:
3.拖到opt目录下开始解压
cd /opt
tar -zxf flume-ng-1.5.2-cdh5.14.2.tar.gz
4.移动到opt目录的soft文件夹下
mkdir soft
mv apache-flume-1.5.2-cdh5.14.2-bin soft/flume152
5.配置flume-env.sh文件的JavaHome环境变量
cd soft/flume152/conf
6.拷贝flume-env.sh.template文件改成 flume-env.sh
cp flume-env.sh.template flume-env.sh
7.添加jdk环境变量
export JAVA_HOME=/opt/soft/jdk180
8.配置flume的环境变量
vi /etc/profile
export FLUME_HOME=/opt/soft/flume152
export PATH=
P
A
T
H
:
PATH:
PATH:FLUME_HOME/bin
9.激活
source /etc/profile
10.验证是否安装成功在bin 目录下
./flume-ng version
如下图所示:
单节点Flume配置
1.创建目录用于放配置文件
mkdir /opt/flumeconf
cd /opt/flumeconf/
2.创建文件夹用于存放要读取的文件
mkdir soft/datas
3.重命名 conf/flume-conf.properties.template 文件为 flume-conf.properties,并修改为以下内容:
cp flume-conf.properties.templat flume-conf.properties
vi flume-conf.properties
#Agent: 名称定义为 a1
#Source:可以理解为输入端,定义名称为 r1
#channel:传输频道,定义为 c1,设置为内存模式
#sinks:可以理解为输出端,定义为 s1
#命名此代理上的组件别名
a1.sources = r1
a1.channels = c1
a1.sinks = s1
#描述配置源
#设置 Source 的类型为 netcat 端口为 6666,以及主机ip
a1.sources.r1.type = netcat
a1.sources.r1.bind = 192.168.5.150
a1.sources.r1.port = 6666
#描述接收器
#设置 Sink 为 logger 模式
a1.sinks.s1.type = logger
#设置 channel 信息
a1.channels.c1.type = memory
#内存模式
a1.channels.c1.capacity = 1000
#通道中最大的缓冲事件,要大于或等于batchSize的数
a1.channels.c1.transactionCapacity = 100
#将源和接收器绑定到通道
a1.sources.r1.channels = c1
a1.sinks.s1.channel = c1
先启动flume
flume-ng agent -n a1 -c conf -f /opt/soft/flume152/conf/flume-conf.properties -Dflume.root.logger=INFO,console
如下图所示说明已经启动成功!
在这里插入图片描述
新开窗口,再启动nc
nc 192.168.5.150 6666
在nc中发送测试数据最后验证 flume 是否接收到了数据
如下图所示:
在nc中输入数据
在flume中接收到测试的数据,如下图所示:
这时说明已经安装成功!
测试收集日志到HDFS
1.把要读取的文件拖到/opt/soft/datas下
cd /opt/soft/datas
2.创建hdfs文件
hdfs dfs -mkdir /tmp/customs
3.在/opt/flumeconf下创建properties文件,并添加配置
vi conf_0809_readline.properties
a2.channels=c2
a2.sources=s2
a2.sinks=k2
a2.sources.s2.type=spooldir
a2.sources.s2.spoolDir=/opt/soft/datas
a2.channels.c2.type=memory
a2.channels.c2.capacity=10000
a2.channels.c2.transactionCapacity=1000
//类型为hdfs
a2.sinks.k2.type=hdfs
//上传的hdfs路径
a2.sinks.k2.hdfs.path=hdfs://192.168.5.150:9000/tmp/customs
//生成的文件前缀名
a2.sinks.k2.hdfs.filePrefix=events-
//每5000条数据生成一个文件
a2.sinks.k2.hdfs.rollCount=5000
//触发滚动的文件大小以字节为单位
a2.sinks.k2.hdfs.rollSize=600000
//传到HDFS的数据为每500条
a2.sinks.k2.hdfs.batchSize=500
//将源和接收器绑定到通道c1
a2.sinks.k2.channel=c2
a2.sources.s2.channels=c2
启动flume开始监听文件到hdfs
flume-ng agent -n a2 -c conf -f /opt/flumeconf/conf_0809_readline.properties -Dflume.root.logger=INFO,console
当文件全部读取完成后,会在datas文件夹下看到读取成功的文件名后缀有.COMPLETED表示读完此次文件,如图所示:
在这里插入图片描述
这时在hdfs上能看到文件已经上传成功了,如图所示: