官方文档
官网地址:http://flume.apache.org
文档地址:http://flume.apache.org/FlumeUserGuide.html
下载地址:http://flume.apache.org/download.html
Flume结构
Events
Event是Flume中数据流动的单元。
Agent
完整Flume实例,是一个独立的JVM程序。
Source
Source是从外部系统摄入数据,生成Events到Channel中。
Channel
Channel是一个数据通道,在Source和Channel之间,起到一个缓冲数据的作用。
Sink
Sink是从Channel中取出Events,并将数据落入到外部系统中。
Flume使用
下载
下载Flume的包并解压,我使用的是1.8.0的版本(apache-flume-1.8.0-bin.tar.gz)。
JAVA_HOME和JAVA_OPTS配置
conf/flume-env.sh.template是Flume运行环境的配置模板,可以复制一份flume-env.sh文件,配置JAVA_HOME和JAVA_OPTS。
Flume Agent配置
conf/flume-conf.properties.template是Flume Agent配置模板。
接下来我需要配置一个Http Source、一个Memory Channel和一个Kafka Sink,来实现Http接口上报日志数据落入到Kafka消息队列中。
定义Agent:
1 | agent.sources = httpSrc |
配置Source
参考:http://flume.apache.org/FlumeUserGuide.html#http-source
1 | agent.sources.httpSrc.type = http |
配置Channel
参考:http://flume.apache.org/FlumeUserGuide.html#memory-channel
1 | agent.channels.memoryChannel.type = memory |
配置Sink
参考:http://flume.apache.org/FlumeUserGuide.html#kafka-sink
1 | agent.sinks.kafkaSink.type = org.apache.flume.sink.kafka.KafkaSink |
启动Agent
1 | bin/flume-ng agent \ |