Flume NG安装部署及数据采集测试
转载请注明出处:http://www.cnblogs.com/xiaodf/
Flume作为日志收集工具,监控一个文件目录或者一个文件,当有新数据加入时,采集新数据发送给消息队列等。
1 安装部署Flume
若要采集数据节点的本地数据,每个节点都需要安装一个Flume工具,用来做数据采集。
1.1 下载并安装
到官网去下载最新版本的Flume
下载地址为:http://flume.apache.org/,目前最新版本为1.6.0,需要1.7及以上版本的JDK。
1、解压
tar -xzvf apache-flume-1.6.0-bin.tar.gz -C /usr/local/
2、安装JDK1.7
如果节点上JDK版本低于1.7,需要安装1.7或以上版本的JDK
JDK 1.7 下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
在Flume目录下创建一个java目录,存放JDK
1 2 3 4 | cd /usr/local/apache-flume-1 .6.0-bin mkdir java cd java tar -xzvf jdk-7u79-linux-x64. tar .gz |
1.2 配置Flume系统参数
修改 flume-env.sh 配置文件,主要是JAVA_HOME变量设置
1 2 | cd /usr/local/apache-flume-1 .6.0-bin /conf cp flume- env .sh.template flume- env .sh |
在flume-env.sh里面设置FLUME_CLASSPATH变量和JAVA_HOME变量,
示例:
1 2 | export JAVA_HOME= /usr/local/apache-flume-1 .6.0-bin /java/jdk1 .7.0_79 FLUME_CLASSPATH= "/usr/local/apache-flume-1.6.0-bin/" |
变量具体内容根据实际修改
1.3 添加Flume第三方依赖
此处自定义了一个flume拦截器,没有的话,可忽略此步。
添加第三方依赖包flume-plugins-1.0-SNAPSHOT.jar,此包实现了一个Flume拦截器,将Flume采集到的数据进行序列化、结构化等预处理,最后每条数据生成一条Event数据返回。
1 2 3 4 5 6 | cd /usr/local/apache-flume-1 .6.0-bin mkdirplugins.d --创建依赖目录,目录名必须为plugins.d cdplugins.d mkdirflume-plugins --项目目录,目录名随意 cdflume-plugins mkdirlib --jar包目录,目录名必须为lib |
将第三方jar包flume-plugins-1.0-SNAPSHOT.jar放在lib目录下
1.4 创建Flume agent配置文件
创建flume启动配置文件,指定source,channel,sink 3个组件内容。每个组件都有好几种配置选项,具体配置请查看Flume官网。
创建配置文件flume.conf,示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | a1.sources = x1 a1.sinks = y1 a1.channels = z1 # Describe/configure thesource a1.sources.x1. type = exec a1.sources.x1.channels =z1 a1.sources.x1. command = tail -F /home/xdf/exec .txt # Describe the sink a1.sinks.y1. type =logger # Use a channel whichbuffers events in memory a1.channels.z1. type =memory a1.channels.z1.capacity= 1000 a1.channels.z1.transactionCapacity= 100 # Bind the source andsink to the channel a1.sources.x1.channels =z1 a1.sinks.y1.channel = z1 |
1.5 启动Flume Agent
进入Flume安装目录,开启agent。
1 2 | cd /usr/local/apache-flume-1 .6.0-bin . /bin/flume-ng agent--conf conf --conf- file flume.conf --name a3 -Dflume.root.logger=INFO,console |
注意:-Dflume.root.logger=INFO,console仅为 debug 使用,请勿生产环境生搬硬套,否则大量的日志会返回到终端。-c/--conf 后跟配置目录,-f/--conf-file 后跟具体的配置文件,-n/--name 指定agent的名称。
1.6 测试
上面配置的example.conf文件,实现的功能是监控文件/home/xdf/exec.txt,
如果有新数据写入时,Flume就会采集到新数据并打印在控制台上。
测试用例:向/home/xdf/exec.txt文件中写入内容“hello flume”。
1 | echo 'hello flume' >> /home/xdf/exec .txt |
Flume 终端窗口此时会打印出如下信息,就表示成功了:
1 2 | 2015-06-3016:01:52,910 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO -org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: {headers:{} body: 68 65 6C 6C 6F 20 66 6C 75 6D 65 hello flume } |
至此,Flume安装部署完毕。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?