Flume,一款超好用的大数据聚集组件
Flume入门
Flume的文档介绍很多了,不过还是想写一写,发散一下思维,比你平时看到的多一些启发,工作中就多一个解决方案。
Flume官网,[http://flume.apache.org/](http://flume.apache.org/);
Flume 下载地址:[http://flume.apache.org/download.html](http://flume.apache.org/download.html);
Linux 解压 tar -zxvf apache-flume-1.6.0-bin.tar.gz
Flume介绍
体系结构
Flume agent 是一个(JVM)进程,它承载组件的运行,是Flume运行的核心。它含有三个核心组件,source、channel、sink,通过这些组件,event从一端流向另一端(Event 是格式化后的字节和字符串类型的数据流单元),source 和 sink 与通道中暂存的event 在给定的agent 中异步运行。
官方图.pngSource
Source是数据的收集端,负责将数据捕获后进行格式化到event里,然后将event保存到Channel中;Flume 提供了各种source的实现,包括Avro source、Thrift source、Kafka source等,如果原生提供的source无法满足需求,可自定义开发source。Flume 提供的source 如下:
Source.pngChannel
Channel 依靠本地文件系统被动保存 source 接受到的event,直到被sink 消费。可以将Channle看作是缓冲队列,Flume提供多种类型的持久化,如下:
Channel.pngSink
Sink从channel 移除event并将它放入类似于HDFS外部仓库或者将其直接发送给下一个 Flume agent的source;Flume提供sink的实现,如下:
Sink.png组合使用
Flume的强大之处在于提供了多种source和sink,这些source和sink 可以自由组合成强大的数据采集链路,只有你想不到,没有它做不到,如果原生提供的source和sink无法满足需求,还可自定义开发。如下图:
Flume组合.png部署启动
1.将下载的安装包上传到服务器解压,如下
tar -zxvf apache-flume-1.6.0-bin.tar.gz
2.在Flume安装文件下的./conf 下新增Flume配置flume-config.properties,如下是监听端口号为44444数据并保存到日志中的配置:
flume-log-agent.sources = arvo-source
flume-log-agent.sinks = logger-sink
flume-log-agent.channels = memory-channel
# Describe/configure the source
flume-log-agent.sources.arvo-source.type = avro
flume-log-agent.sources.arvo-source.bind = 192.168.200.130
flume-log-agent.sources.arvo-source.port = 44444
# Describe the sink
flume-log-agent.sinks.logger-sink.type = logger
# Use a channel which buffers events in memory
flume-log-agent.channels.memory-channel.type = memory
# Bind the source and sink to the channel
flume-log-agent.sources.arvo-source.channels = memory-channel
flume-log-agent.sinks.logger-sink.channel = memory-channel
3.执行命令提供两种方式,将执行结果输入到控制台和保存到日志文件,如下:
./bin/flume-ng agent -c conf -f ./conf/flume-config.properties --name flume-log-agent -Dflume.root.logger=INFO,console
./bin/flume-ng agent -c conf -f ./conf/flume-config.properties --name flume-log-agent -Dflume.root.logger=INFO,LOGFILE