(一)什么是Flume?
Flume 是一个用 Java 编写的用于采集日志的框架。我们可以配置 Flume 监控一个文件的末尾,当文件内容发生变化的时候实时的将数据采集到 HDFS 上;也可监控一个目录,当这个目录新增了文件时,将这个文件采集到 HDFS 上。
(二)Flume架构
Flume 主要由三部分组成:Source,Channel,Sink。
- Source:数据源,用来采集数据。
- Channel:频道,用来缓存数据。
- Sink:沉淀,用来将 Channel 中的数据发送到指定的目的,比如 HDFS,Kafka 等。
(三)安装和配置
- 解压压缩包
- 修改配置
conf/flume-env.sh
设置 JAVA_HOME 即可
(四)使用 Flume 采集日志
案例一:监控特定端口发送的数据,打印到控制台
#bin/flume-ng agent -n a1 -f myagent/a1.conf -c conf -Dflume.root.logger=INFO,console
#定义agent名, source、channel、sink的名称
a1.sources = r1
a1.channels = c1
a1.sinks = k1
#具体定义source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port