未经许可,禁止以任何形式转载,若要引用,请标注链接地址
全文共计2086字,阅读大概需要3分钟
一、 任务描述
本实验任务主要完成基于ubuntu环境使用flume的采集某个端口的日志信息。通过完成本实验任务,要求学生初步了解flume对端口信息的采集语法格式,为深度学习flume知识做基础,也为从事大数据平台运维工程师、大数据技术支持工程师等岗位工作奠定夯实的技能基础。
二、 任务目标
熟悉Flume概述,Flume架构
熟悉Flume基本组件Source,Sink,Channel
理解Avro Source将数据输出到Console
三、 任务环境
本次环境是:Ubuntu16.04+flume-ng-1.5.0-cdh5.3.6
四、 任务分析
Flume采集数据的简单案例,通过avro方式,从客户端上读取一个文件,然后提交到avro服务端的source获取,通过内存channel最后将数据输送到目的地logger 并在控制台输出;采用Avro Source+Memory Channel+Logger Sink方式
本次实验的大致流程是:
testflume文件内容——>agent-source-avro——>agent-channel-memory—->agent-sink-flume-logger—->-Dflume.root.logger=DEBUG,console控制台打印
♥ 知识链接
历史数据和实时数据
基于Flume将“历史数据“保存在HDFS,“历史数据“:比如“每天rotate生成的日志文件“,即我们熟悉的catalina.out文件。每天都rotate生成一个新的。当然对于“准实时“数据也可以保存在HDFS中,Flume支持将“tail“的数据每隔数小时生成一个HDFS文件等。通常情况下,我们将“历史数据“保存在HDFS,而不是“实时数据“。
五、 任务实施
步骤1、操作步骤
在linux目录/usr/local下,执行命令:touch /usr/local/testflume
并编辑内容为:
1:Hello Flume. 2:I Love Flume! 3:AND, 4:You Love Flume? 5:Sure,Me too.
如图1所示
图1 编辑文件
执行命令:cd /simple/flume/conf切换到目录/simple/flume/conf下,之后执行命令:touch avrofile.conf创建文件avrofile.conf,并写入内容如下:
1. # 配置agent 2. a1.sources = r1 3. a1.sinks = k1 4. a1.channels = c1 5. # Describe/configure the source 6. a1.sources.r1.type = avro 7. a1.sources.r1.channels = c1 8. a1.sources.r1.bind = 0.0.0.0 9. a1.sources.r1.port = 41414 10. # Describe the sink 11. a1.sinks.k1.type = logger 12. # Use a channel which buffers events in memory 13. a1.channels.c1.type = memory 14. a1.channels.c1.capacity = 1000 15. a1.channels.c1.transactionCapacity = 100 16. # Bind the source and sink to the channel 17. a1.sources.r1.channels = c1 18. a1.sinks.k1.channel = c1
根据配置好avrofile.conf的配置信息,启动flume agent。
执行命令:cd /simple/flume进入该目录并执行如下命令:
./bin/flume-ng agent -c . -f conf/avrofile.conf -n a1 -Dflume.root.logger=INFO,console。如图2所示
图2 启动flume
一些配置的说明:
name | Value |
-f | 指定flume服务端启动监听的agent配置文件, |
-n | 指定启动的flume agent别名, |
-D | flume.root.logger=DEBUG,console 表示数据在控制台打印出, |
启动flume agent后,可以看到如下信息:Avro source r1 started,此时会不停扫描avrofile.conf,
上面的命令启动成功后显示的信息,如图3所示:
图3 显示启动过程
再启动一个终端。
cd /simple/flume
使用avro-client发送文件,执行该命令:
/simple/flume/bin/flume-ng avro-client -c . -H localhost -p 41414 -F /usr/local/testflume。如图4,5所示
图4 avro-client发送文件
图5 avro-client发送文件结果展示
数据向第一个命令终端发送成功的信息,红框表示收到的终端收到的数据。如图6所示
图6 数据展示