环境准备:

hadoop集群正常运行

zookeeper正常运行

机器

master

slave1

slave2

IP

192.168.231.105

192.168.231.106

192.168.231.107

环境搭建:

一、下载安装

        1、下载flume-1.8.0-bin.tar.gz:

Index of /flume/1.8.0

flume 安装端安装 flume环境配置_数据

https://downloads.apache.org/flume/1.8.0/

        2、解压:

tar -zxvf apache-flume-1.8.0-bin.tar.gz -C /home

        3、重命名:

mv apache-flume-1.8.0-bin/ flume

二、环境变量

        1、配置flume环境变量:

vim /etc/profile

flume 安装端安装 flume环境配置_hdfs_02

        2、使环境变量立即生效:

source /etc/profile

三、配置文件

        1、修改配置文件  flume-env.sh:

                进入conf目录,拷贝  flume-env.sh.template  为  flume-env.sh:

cp flume-env.sh.template flume-env.sh

                修改jdk路径:

export JAVA_HOME=/home/jdk

flume 安装端安装 flume环境配置_centos_03

         2、在 conf 目录下创建slave.conf文件:

vim slave.conf
# 主要作用是监听目录中的新增数据,采集到数据之后,输出到avro (输出到agent)
# 注意:Flume agent的运行,主要就是配置source channel sink
# 下面的a1就是agent的代号,source叫r1 channel叫c1 sink叫k1

a1.sources = r1
a1.sinks = k1
a1.channels = c1

#具体定义source  
a1.sources.r1.type = spooldir
#先创建此目录,保证里面空的  
a1.sources.r1.spoolDir = /tmp/logs 

#对于sink的配置描述 使用avro日志做数据的消费
a1.sinks.k1.type = avro
# hostname是最终传给的主机名称或者ip地址
a1.sinks.k1.hostname = master
a1.sinks.k1.port = 44444

#对于channel的配置描述 使用文件做数据的临时缓存 这种的安全性要高
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /home/flume/checkpoint
a1.channels.c1.dataDirs = /home/flume/data

#通过channel c1将source r1和sink k1关联起来
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

flume 安装端安装 flume环境配置_数据_04


注:需要注意的地方标号已注明,需保证logs目录存在且为空,3,4两处依据实际情况进行修改


        3、在  /tmp/下创建logs监控目录,flume/  目录下创建checkpoint,data目录(3台机器全部都要做):

mkdir -p /tmp/logs
mkdir checkpoint
mkdir data

        4、分发 flume 文件到slave1和slave2从机:

scp -r /home/flume slave1:/home/flume
scp -r /home/flume slave2:/home/flume

        5、在master的flume的conf文件夹下创建一个master.conf文件:

vim master.conf
# 获取slave1,2上的数据,聚合起来,传到hdfs上面
# 注意:Flume agent的运行,主要就是配置source channel sink
# 下面的a1就是agent的代号,source叫r1 channel叫c1 sink叫k1

a1.sources = r1
a1.sinks = k1
a1.channels = c1

#对于source的配置描述 监听avro
a1.sources.r1.type = avro
# hostname是最终传给的主机名称或者ip地址
a1.sources.r1.bind = master
a1.sources.r1.port = 44444


#定义拦截器,为消息添加时间戳  
a1.sources.r1.interceptors = i1  
a1.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder

#对于sink的配置描述 传递到hdfs上面
a1.sinks.k1.type = hdfs  
#集群的nameservers名字
#单节点的直接写:hdfs://主机名(ip):9000/xxx

a1.sinks.k1.hdfs.path = hdfs://master:9000/flume/%Y%m%d  
a1.sinks.k1.hdfs.filePrefix = events-  
a1.sinks.k1.hdfs.fileType = DataStream  
#不按照条数生成文件  
a1.sinks.k1.hdfs.rollCount = 0  
#HDFS上的文件达到128M时生成一个文件  
a1.sinks.k1.hdfs.rollSize = 134217728  
#HDFS上的文件达到60秒生成一个文件  
a1.sinks.k1.hdfs.rollInterval = 60  


#对于channel的配置描述 使用内存缓冲区域做数据的临时缓存
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

#通过channel c1将source r1和sink k1关联起来
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

flume 安装端安装 flume环境配置_hdfs_05

注:如果机器名与笔者相同,只需修改这一行即可,master后的数字为core-site.xml配置文件中的配置数字

四、启动集群

        1、启动hadoop集群:

sbin/start-all.sh

flume 安装端安装 flume环境配置_flume 安装端安装_06

flume 安装端安装 flume环境配置_数据_07

flume 安装端安装 flume环境配置_flume_08

 

        2、启动zookeeper:

flume 安装端安装 flume环境配置_flume_09

flume 安装端安装 flume环境配置_flume 安装端安装_10

flume 安装端安装 flume环境配置_flume_11

 

        3、启动flume集群:

在flume目录下

        master端:

bin/flume-ng agent -n a1 -c conf -f conf/master.conf -Dflume.root.logger=INFO,console

        slave1端和slave2端:

bin/flume-ng agent -n a1 -c conf -f conf/slave.conf -Dflume.root.logger=INFO,console

五、在slave机器 /tmp/logs 目录下创建文本

        1、创建test1:

vim test1

flume 安装端安装 flume环境配置_hdfs_12

        2、创建test2:

vim test2

flume 安装端安装 flume环境配置_flume_13

slave端:

flume 安装端安装 flume环境配置_数据_14

 master端:

flume 安装端安装 flume环境配置_hdfs_15

注:可以在master和slave终端均看到有持续的信息回读且正确读取到test1和test2文件

六、web端查看

master:50070

flume 安装端安装 flume环境配置_centos_16

flume 安装端安装 flume环境配置_flume 安装端安装_17

flume 安装端安装 flume环境配置_数据_18

flume 安装端安装 flume环境配置_flume 安装端安装_19

 

七、终端查看上传hdfs文件:

        1、查看 hdfs 根目录列表:

hdfs dfs -ls /

flume 安装端安装 flume环境配置_flume 安装端安装_20

         2、查看上传文件内容:

hdfs dfs -cat /flume/20211109/events-.1636507269933

flume 安装端安装 flume环境配置_hdfs_21

 

centos安装flume(集群模式)完成