Linux Flume搭建教程

98 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

解压flume压缩包,什么版本都可以建议从官网下载。 在这里插入图片描述

然后配置系统环境变量 路径写你之前解压的位置 在这里插入图片描述 进入到flume/conf/目录下 复制一个flume副本

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

进入副本修改java环境 在这里插入图片描述 在这里插入图片描述 在conf目录下创建一个控制台文件

vi console.conf

在这里插入图片描述 写入配置文件信息

#定义当前agent的名字为a1,可以随意
#定义agent中的sources名字为r1
a1.sources=r1
#定义agent中的sinks组件叫做k1
a1.sinks=k1
#定义agent中的channels组价叫c1
a1.channels=c1
#分别详细设置
#source类型为网络字节流
a1.sources.r1.type=netcat
#监听的主机名
a1.sources.r1.bind=hadoop01
#监听接收数据的端口号
a1.sources.r1.port=44444
#设置类型为logger日志方式
a1.sinks.k1.type=logger	
#内存进行数据缓存
a1.channels.c1.type=memory
#定义容量
a1.channels.c1.capacity=1000
#最大事务容量
a1.channels.c1.transactionCapacity=100

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

---------------------------------------保存至本地文件----------------------------------------
a1.sinks.k1.type=file_roll
a1.sinks.k1.sink.directory=/opt/temp
a1.sinks.k1.sink.rollinterval=0



进入 bin目录测试端口发送信息

 bin/flume-ng agent -c conf -f ..conf/console.conf(创建的文件名)
    --name a1(a1是收集器的名字) -Dflume.root.logger=INFO,console(输出到控制台)

看到44444端口代表启动成功 在这里插入图片描述 去第二台hadoop2中进行网络信息发送

先使用yum下载nc指令 yum -y insert nc

在这里插入图片描述

nc hadoop1 44444 发送信息到hadoop1中

在这里插入图片描述 **

定义监听文件的变化

** 在conf目录下创建一个file.conf文件写入内容

#定义当前agent的名字为a2,可以随意
#定义agent中的sources名字为r1
a2.sources=r1
#定义agent中的sinks组件叫做k1
a2.sinks=k1
#定义agent中的channels组价叫c1
a2.channels=c1
#分别详细设置
#source类型为网络字节流
a2.sources.r1.type=exec
a2.sources.r1.command=tail -F /opt/temp/flumetest.txt

#设置类型为logger日志方式
a2.sinks.k1.type=logger	
#内存进行数据缓存
a2.channels.c1.type=memory
#定义容量
a2.channels.c1.capacity=1000
#最大事务容量
a2.channels.c1.transactionCapacity=100

a2.sources.r1.channels=c1
a2.sinks.k1.channel=c1


修改日志的内容

a2.sinks.k1.type=file_roll
a2.sinks.k1.sink.directory=/opt/temp
a2.sinks.k1.sink.rollinterval=0

在这里插入图片描述 到/opt/temp中创建一个flumetest.txt文件随便输入点内容 到bin目录启动文件监听

flume-ng agent -c conf -f ../conf/file.conf  --name a2  -Dflume.root.logger=INFO,console

在这里插入图片描述

将监听到的内容上传到hdfs

到conf目录创建一个hdfs.conf写入配置文件

#定义当前agent的名字为a3,可以随意
#定义agent中的sources名字为r1
a3.sources=r1
#定义agent中的sinks组件叫做k1
a3.sinks=k1
#定义agent中的channels组件叫c1
a3.channels=c1
#分别详细设置
a3.sources.r1.type=exec
a3.sources.r1.command=tail -F /opt/temp/flumetest.txt

#设置类型为logger日志方式
a3.sinks.k1.type=hdfs
a3.sinks.k1.hdfs.path=hdfs://hadoop01:9000/input/flume/%y/%m
a3.sinks.k1.hdfs.filePrefix=events-
#舍弃秒单位
a3.sinks.k1.hdfs.round=true
a3.sinks.k1.hdfs.roundValue=40
a3.sinks.k1.hdfs.roundUnit=second
a3.sinks.k1.hdfs.useLocalTimeStamp=true
#中文乱码a3.sinks.k1.hdfs.fileType=DataStream
#内存进行数据缓存
a3.channels.c1.type=memory
#定义容量
a3.channels.c1.capacity=1000
#最大事务容量
a3.channels.c1.transactionCapacity=100

a3.sources.r1.channels=c1
a3.sinks.k1.channel=c1



./flume-ng agent -c conf -f ../conf/hdfs.conf --name a3 -Dflume.root.logger=INFO,console

在这里插入图片描述 在这里插入图片描述 直接读取上传的文件即可

hdfs dfs -cat /input/flume/22/01/events-.1641377558513