Flume应用案例之监控一个文件实时采集新增的数据输出到控制台
2018-10-16 15:40
274 查看
版权声明:个人博客网址 https://29dch.github.io/ GitHub网址 https://github.com/29DCH,欢迎大家前来交流探讨和fork! https://blog.csdn.net/CowBoySoBusy/article/details/83088888
紧接我的前两篇博客讲下来
分布式日志收集框架Flume环境安装部署
Flume应用案例之从指定网络端口采集数据输出到控制台
阅读这篇博客如有问题,可以先参考阅读我的这两篇博客相关内容
Agent选型:exec source + memory channel + logger sink
在conf目录下创建exec-memory-logger.conf文件
vi exec-memory-logger.conf
在这个/home/zq/data(根据你自己的来)路径下创建一个data.log文件
配置exec-memory-logger.conf文件如下:
在exec-memory-logger.conf文件中加入以下内容并保存
#Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 #Describe/configure the source a1.sources.r1.type = exec a1.sources.r1.command = tail -F /home/zq/data/data.log a1.sources.r1.shell = /bin/sh -c #Describe the sink a1.sinks.k1.type = logger #Use a channel which buffers events in memory a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 #Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
启动agent:
先cd进入conf目录
依次执行以下命令
flume-ng agent \ --name a1 \ --conf $FLUME_HOME/conf \ --conf-file $FLUME_HOME/conf/exec-memory-logger.conf \ -Dflume.root.logger=INFO,console
现在开始测试
新开一个终端,往上面已经创建好的data.log文件里面echo一些内容
效果如下图
可见这次测试是成功的,控制台有对应的输出显示
这样就实现了监控一个文件实时采集新增的数据并输出到控制台
当然了,在实际生产环境中将大量日志或者其他信息输入到控制台显然不太合理.离线状态下我们可以选择输入到HDFS分布式文件系统,实时的话可以存储到Kafka中,当然还有其他存储系统中去
以HDFS为例:
这时修改上面的flume配置文件参数,然后开启HDFS服务(详情见我的关于HDFS的相关博客),再测试一下即可
详情见flume用户文档
https://flume.apache.org/FlumeUserGuide.html#hdfs-sink
相关文章推荐
- 分布式日志收集框架Flume:监控一个文件实时采集新增的数据输出到控制台
- Flume应用案例之两台服务器之间进行实时数据采集
- 分布式日志收集框架Flume:从指定网端口采集数据输出到控制台
- flume使用(四):taildirSource多文件监控实时采集
- Spark Streaming之:Flume监控目录下文件内容变化,然后Spark Streaming实时监听Flume,然后从其上拉取数据,并计算出结果
- Flume的使用之二——实时监控文件的数据变化并发送到工作台
- flume 简单案例 将一个节点的中一个日志文件的动态变化 在 另一个节点的终端输出
- Flume应用之三——将一个服务器上的日志实时采集到另一个服务器上
- Flume安装部署_采集方案配置文件编写案例_启动agent采集数据
- Flume安装部署,采集方案配置文件编写案例,启动agent采集数据
- 从文件中读入数据,排序并输出到另外一个文件中
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 编写一个函数,能输出文件夹下的文件列表,文件名通过控制台输入
- C#--第三周实验--任务2--输入一个由若干字符组成的字符串,输出其中的大写字母、小写字母、数字和其他字符的个数(控制台应用)
- 编写一个函数,能输出文件夹下的文件列表,文件名通过控制台输入
- 一个开始----大数据思维模式在物联网系统运维应用的一个案例
- 读取一个文件然后将文件中的数据排序然后输出到另外一个文件中(冒泡排序)
- Java实时监控日志文件并输出_java线程池
- 用mingw编译C++工程;程序里面的cout<<"aaa";cmd运行c++程序,aaa内容在控制台不显示,如何将aaa输出到控制台屏幕并将控制台内容写到一个文件中。
- C++程序设计实验报告(十八)----从文件中读入数据,排序并输出到另外一个文件中