一、概述:
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。
当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng。由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分。
先来看几张数据流图:
从上面的图大致可以知道,flume就是将source数据导入到输出中的一个工具。source可以有多个,输出也可以有多个。
二、环境说明:
本文中使用的flume是1.6.0版本。
三、环境搭建:(一个简单的示例)
1、首先从官网上下载对应的二进制tar包。http://flume.apache.org/download.html
2、解压文件,并拷贝到指定目录下。
tar -zxvf apache-flume-1.6.0-bin.tar.gz
3、在flume的安装目录下的conf目录中创建一个配置文件test.conf:
# example.conf: A single-node Flume configuration # Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1 # Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444 # Describe the sink
a1.sinks.k1.type = logger # Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
该配置文件监听了44444端口。
4、启动flume的agent:
bin/flume-ng agent --conf conf --conf-file conf/test.conf --name a1 -Dflume.root.logger=INFO,console
执行完上述命令,命令行就会处于监听状态。会将该端口监听到的数据直接打印到命令行窗口中。
上面的a1,指的就是配置文件test.conf中定义的a1.
5、通过telnet连接,并发送信息。
由于配置文件中使用的localhost,所以我们在本机重开一个命令行窗口。
telnet localhost 44444
我们在telnet命令行键入以下内容:
在flume的命令行就可以看到监听到的数据:
至此,flume安装完毕并演示了一个简单的示例。