flume-将日志采集到hdfs

看到hdfs大家应该做什么?

是的你应该去把集群打开,

复制代码
cd /export/servers/hadoop/sbin

启动集群

复制代码
./start-all.sh

在虚拟机hadoop02和hadoop03上的conf目录下配置相同的日志采集方案,'

复制代码
cd /export/servers/flume/conf

切换完成之后,接下来我们输入下面的命令

复制代码
vi exec-avro-new.conf

然后在文件里面输入

复制代码
a1.sources = r1 r2 r3
a1.sinks = k1
a1.channels = c1
#配置第一个Source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /export/data/access.log
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type = static
a1.sources.r1.interceptors.i1.key = type
0a1.sources.r1.interceptors.i1.value = access
#配置第二个Source
a1.sources.r2.type = exec
a1.sources.r2.command = tail -F /export/data/nginx.log
a1.sources.r2.interceptors = i2
a1.sources.r2.interceptors.i2.type = static
a1.sources.r2.interceptors.i2.key = type
a1.sources.r2.interceptors.i2.value = nginx
#配置第三个Source
a1.sources.r3.type = exec
a1.sources.r3.command = tail -F /export/data/web.log
a1.sources.r3.interceptors = i3
a1.sources.r3.interceptors.i3.type = static
a1.sources.r3.interceptors.i3.key = type
a1.sources.r3.interceptors.i3.value = web
#配置Channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 2000000
a1.channels.c1.transactionCapacity = 100000
#配置Sink
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hadoop01
a1.sinks.k1.port = 41414
# 关联Source、Sink和Channel 
a1.sources.r1.channels = c1
a1.sources.r2.channels = c1
a1.sources.r3.channels = c1
a1.sinks.k1.channel = c1

记住hadoop02和hadoop03都需要上传哈,上传这个相同的文件就ok。

那么接下来,让我们切换到hadoop01.选择成功之后,我们再次切换到熟悉的conf目录

复制代码
cd /export/servers/flume/conf

输入

复制代码
vi avro-hdfs.conf

输入下面内容

复制代码
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 配置Source
a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop01
a1.sources.r1.port = 41414
a1.sources.r1.interceptors = i1
a1.sources.r1.interceptors.i1.type = timestamp
# 配置Channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 20000
a1.channels.c1.transactionCapacity = 10000
# 配置Sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://hadoop1:9000/Flume/logs/%{type}/%Y%m%d
a1.sinks.k1.hdfs.filePrefix = events
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.rollInterval = 0
a1.sinks.k1.hdfs.rollSize = 10485760
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
复制代码

那么好,上面的弄完了,我们接下来切换到。

hadoop01的lib目录下

复制代码
cd /export/servers/hadoop/share/hadoop/common/lib

切换完成之后我们复制一个jar包到flume目录下,

复制代码
cp guava-27.0-jre.jar /export/servers/flume/lib

复制完成之后我们切换到flume的lib目录下,把之前的guava删除掉

复制代码
cd /export/servers/flume/lib

切换完成之后,我们删除之前版本的guava

复制代码
rm -rf guava-11.0.2.jar

那么这个时候!

我们就需要启动集群!

不会启动集群的给自己两巴掌,然后去博主之前的博客寻找一下如何搭建hadoop集群。

一定要启动集群啊!

再次嘱咐、

已经启动的可以略过

,没有启动的回到文章的第一行,启动集群,再回来。

首先切换到hadoop01的conf目录下

复制代码
flume-ng agent --name a1 --conf conf/ --conf-file avro-hdfs.conf -Dflume.root.logger=INFO,console

展示

那么接下来,我们切换到hadoop02和hadoop03!

切换到他们的conf目录

复制代码
cd /export/servers/flume/conf

输入下面的内容

复制代码
flume-ng agent --name a1 --conf conf/ --conf-file exec-avro-new.conf -Dflume.root.logger=INFO,console

那么开始展示hadoop02和hadop03的

两个启动完成之后,我们返回看一下hadoop01的日志

上面的操作完成之后,我们各自克隆3个hadoop02和hadoop03窗口

那么接下来的盛况应该是

一共这么老些个

那么我们挑选一个hadoop02和hadoop03的窗口输入下面的命令查看一下日志的写入情况,

复制代码
while true;do echo "access access..." >> /export/data/access.log;sleep 1;done

再挑选一组

复制代码
while true;do echo "nginx nginx..." >> /export/data/nginx.log;sleep 1;done

再再挑选一组

复制代码
while true;do echo "web web..." >> /export/data/web.log;sleep 1;done

那么我们回到hadoop01,查看一波日志

ok那么下一步;

打开hadoop01的9870端口的webui

点进去,再点一下

就会看到我们写入的日志内容

随便点进去一个

那么到这里为止flume,将日志采集到hdfs就完成啦

撒花~

有问题可以再评论区提出来,看到的话会给大家解答,或者私信也可以

相关推荐
搞科研的小刘选手4 分钟前
【EI稳定检索会议】第七届计算机信息和大数据应用国际学术会议(CIBDA 2026)
大数据·acm·学术会议·计算机工程·计算机信息·大数据应用·信息与技术
IOsetting5 分钟前
金山云主机添加开机路由
运维·服务器·开发语言·网络·php
酉鬼女又兒10 分钟前
零基础入门Linux指南:每天一个Linux命令_sed
linux·运维·服务器
成长之路51413 分钟前
【数据集】地级市公共安全基建省内横向压力(2015-2025)
大数据
daad77714 分钟前
tcpdump_BPF
linux·测试工具·tcpdump
予枫的编程笔记17 分钟前
【Linux进阶篇】Linux网络配置+端口监听实战:ip/ss/iptables常用命令一次吃透
linux·iptables·网络配置·curl·端口监听·ping·ss命令
礼拜天没时间.24 分钟前
深入Docker架构——C/S模式解析
linux·docker·容器·架构·centos
-dcr27 分钟前
58.DevOps进阶
运维·devops
猫头虎29 分钟前
如何使用Docker部署OpenClaw汉化中文版?
运维·人工智能·docker·容器·langchain·开源·aigc
XiaoMu_00129 分钟前
自动化漏洞扫描与预警平台
运维·网络·自动化