解压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