Flume的单机版配置及测试

概览

1.上传解压
2.修改配置文件(监控目录)
3.启动及测试(监控目录)
4.修改配置文件(监控文件)
5.启动及测试(监控文件)
6.修改配置文件(监控端口)
7.启动及测试(监控端口)
8.使flume后台执行,日志输入到指定文件

准备

工具:Xshell 5,Xftp 5(官网有免费版本)
flume版本:1.8.0
jdk1.8.0_141

1.上传解压

在flume官网上下载完成flume后,利用Xftp上传到虚拟机中,然后解压

1
2
3
4
5
6
7
[root@localhost ~]# cd /usr/
[root@localhost usr]# ls
bin etc games hadoop hbase hive include java lib lib64 libexec local sbin share sqoop src tmp zookeeper
#在usr下创建一个flume文件夹,用作安装路径
[root@localhost usr]# mkdir flume
[root@localhost usr]# ls
bin etc flume games hadoop hbase hive include java lib lib64 libexec local sbin share sqoop src tmp zookeeper

利用Xftp将flume压缩包上传到usr/flume下
在这里插入图片描述

然后解压

1
2
3
4
[root@localhost usr]# cd flume/
[root@localhost flume]# ls
apache-flume-1.8.0-bin.tar.gz
[root@localhost flume]# tar -zxf apache-flume-1.8.0-bin.tar.gz

2.修改配置文件(监控目录)

2.1 .修改flume-env.sh 文件

1
2
3
4
5
[root@localhost flume]# cd apache-flume-1.8.0-bin/conf/
[root@localhost conf]# ls
flume-conf.properties.template flume-env.ps1.template flume-env.sh.template log4j.properties
# 提供了一个模版文件,我们copy出来一个flume-env.sh
[root@localhost conf]# cp flume-env.sh.template flume-env.sh

修改

1
vim flume-env.sh

将其中的
在这里插入图片描述
java环境变量修改为自己的jdk安装目录,如果没有安装jdk请按照这篇文章中的参考安装

修改过后是
在这里插入图片描述
2.2. 创建修改flume.conf文件
在flume的安装路径下的conf文件夹下创建一个flume.conf文件,此配置文件是监控目录

1
2
3
[root@localhost conf]# touch flume.conf
[root@localhost conf]# ls
flume.conf flume-conf.properties.template flume-env.ps1.template flume-env.sh flume-env.sh.template log4j.properties

修改其中的内容为(flume官网文档上也有此配置)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 指定Agent的组件名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# 指定Flume source(要监听的路径)
a1.sources.r1.type = spooldir
#先创建这个目录
a1.sources.r1.spoolDir = /logs

# 指定Flume sink
a1.sinks.k1.type = logger

# 指定Flume channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# 绑定source和sink到channel上
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

保存退出
2.3配置profile环境变量

1
[root@localhost conf]# vim /etc/profile

在profile文件最后添加

1
2
export FLUME_HOME=/usr/flume/apache-flume-1.8.0-bin
export PATH=$PATH:$FLUME_HOME/bin

保存退出,刷新变量

1
source /etc/profile

3.启动及测试(监控目录)

在根目录创建logs日志文件夹

1
2
[root@localhost conf]# cd /
[root@localhost /]# mkdir logs

查看是否安装成功

1
2
3
4
5
6
7
[root@localhost /]# cd /usr/flume/apache-flume-1.8.0-bin
[root@localhost apache-flume-1.8.0-bin]# flume-ng version
Flume 1.8.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 99f591994468633fc6f8701c5fc53e0214b6da4f
Compiled by denes on Fri Sep 15 14:58:00 CEST 2017
From source with checksum fbb44c8c8fb63a49be0a59e27316833d

启动flume

1
[root@localhost apache-flume-1.8.0-bin]# flume-ng agent --conf conf --conf-file conf/flume.conf  --name a1  -Dflume.root.logger=INFO,console

字段的意思为
在这里插入图片描述

查看是否启动成功
在这里插入图片描述
没有报错如图所示便启动成功

测试

然后重新打开个窗口
在这里插入图片描述

在/usr/tmp下创建一个student文件,随便写入一些内容

1
vim student
1
2
3
4
5
1,lilei
2,hanmeimei
3,xiaohei
4,haha
5,lkkkk

然后将其copy到logs文件夹内

1
[root@localhost tmp]# cp student /logs/

返回刚开始的窗口,查看
在这里插入图片描述

4.修改配置文件(监控文件)

其他修改和监控目录的一样

在flume安装目录下的conf文件夹下创建一个a.conf文件

1
2
[root@localhost tmp]# cd /usr/flume/apache-flume-1.8.0-bin/conf/
[root@localhost conf]# vim a.conf

写入配置内容为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 指定Agent的组件名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# 指定Flume source(要监听的路径)
#指定文件类型
a1.sources.r1.type = exec
#指定文件
a1.sources.r1.command = tail -F /a.log


# 指定Flume sink
a1.sinks.k1.type = logger

# 指定Flume channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# 绑定source和sink到channel上
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

5.启动及测试(监控文件)

启动

1
[root@localhost tmp]# flume-ng agent --conf conf --conf-file conf/a.conf  --name a1  -Dflume.root.logger=INFO,console

查看是否启动成功
在这里插入图片描述
测试
重新打开一个新的窗口
在根目录下创建一个a.log日志文件

1
2
3
4
[root@localhost ~]# cd /
[root@localhost /]# ls
bin boot dev etc home lib lib64 logs media mnt opt proc root run sbin srv sys tmp usr var zhiyou
[root@localhost /]# vim a.log

随便写入一些内容

1
2
3
4
ddawda
dwd
dww
helloworld

保存退出

在原先的窗口查看

在这里插入图片描述

6.修改配置文件(监控端口)

其他修改和监控目录的一样

在flume安装目录下的conf文件夹下创建一个logger.conf文件

1
2
[root@localhost /]# cd /usr/flume/apache-flume-1.8.0-bin/conf/
[root@localhost conf]# vim logger.conf

写入配置内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#me the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
#默认该通道中最大可以存储的event数量
a1.channels.c1.capacity = 1000
#每次最大可以从source中拿到或者送到sink中的event数量
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

7.启动及测试(监控端口)

启动

1
[root@localhost conf]# flume-ng agent --conf conf --conf-file logger.conf --name a1  -Dflume.root.logger=INFO,consoleI

查看是否启动成功
在这里插入图片描述

测试
重新打开个窗口

1
[root@localhost conf]# telnet localhost 44444

如果没有telnet命令,安装

1
2
3
# 任意执行一个命令
yum -y install telnet
yum -y install nc

然后随便输入一些内容在这里插入图片描述

回到原来的窗口查看
在这里插入图片描述

8.使flume后台执行,日志输入到指定文件

有时觉得再开一个窗口较为麻烦,且需要存储日志信息,那么可以这样将日志输入到指定文件

先将监控端口的flume进程杀死,然后重新启动

1
[root@localhost conf]# flume-ng agent --conf conf --conf-file conf/logger.conf --name a1 -Dflume.root.logger=INFO,console > x1nohup.out 2>&1 &

程序会在后台执行,并将日志信息输入到安装目录下的x1nohup.out文件中

1
2
# 查看日志文件
[root@localhost apache-flume-1.8.0-bin]# cat x1nohup.out

类似于如图所示
在这里插入图片描述

简单的flume单机版的操作便完成了,接下来会介绍和hadoop单机版集群的搭配使用