申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
全文共计1577字,阅读大概需要3分钟
一、 任务描述
本实验任务主要完成基于ubuntu环境使用flume对指定目录下的日志文件进行读取,通过完成本实验任务,要求学生了解并掌握flume对指定数据文件内容的获取,为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。
二、 任务目标
掌握flume的应用原理
掌握flume对日志信息的采集过程
三、 任务环境
本次环境是:Ubuntu16.04+flume-ng-1.5.0-cdh5.3.6
四、 任务分析
Flume是Cloudera提供的日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理操作,并写到各种storage。Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。本试验就是通过学习flume工具实现对指定目录下所有的日志文件数据信息进行采集并实时把采集到的信息保存到hdfs中指定的位置。
♥ 知识链接
数据存储方式
对于历史数据,我们基于Flume的Spooling方式将数据转存在HDFS中;对于“准实时“数据,我们基于Flume的Tail方式将数据转存在kafka中。
五、 任务实施
步骤1、操作步骤
通过执行命令start-all.sh启动服务,在任意指定目录下创建一个文件,例如在/simple目录下执行命令:touch a2.conf并文件中写入内容如下
1. a2.sources = r1 2. a2.channels = c1 3. a2.sinks = k1 4. a2.sources.r1.type = exec 5. a2.sources.r1.command = tail -F /simple/a.log 6. a2.channels.c1.type = memory 7. a2.channels.c1.capacity = 1000 8. a2.channels.c1.transactionCapacity = 100 9. a2.sinks.k1.type = hdfs 10. a2.sinks.k1.hdfs.path = hdfs://localhost:9000/flume/aa.log 11. a2.sinks.k1.hdfs.filePrefix = events- 12. a2.sinks.k1.hdfs.fileType = DataStream 13. a2.sources.r1.channels = c1 14. a2.sinks.k1.channel = c1
在任意指定目录下创建一个文件,例如在/simple目录下执行命令:touch a.log并向文件中写入内容“aaaaaa“。如图1所示
图1 编辑文件
切换到bin目录下,执行flume命令:./flume-ng agent -n a2 -f /simple/a2.conf -c ../conf/ -Dflume.root.logger=INFO,console。如图2所示
图2 启动flume
另外再开启一个终端,通过执行命令:echo ‘bbbbbbbbbb’>>/simple/a.log向a.log文件中追加内容。如图3所示。然后可以通过执行hdfs系统的命令查看hdfs中生成的文件并发现hdfsc指定的目录文件下的内容增多。如图4所示
图3 向文件追加内容
图4 查看hdfs上文件内容