一、flume架构
一个flume实例由以下三大组件组成:
source:指定数据源收集数据
channel:指定数据传输通道(介质)聚集数据
sink:数据输出到指定存储目标
二、flume安装
1、首先安装jdk
2、到http://archive-primary.cloudera.com/cdh5/cdh/5/下载:flume-ng-1.6.0-cdh5.7.0.tar.gz
3、解压
4、配置环境变量如下,并使之生效
5、进入flume下的conf文件夹,复制文件flume-env.sh.template为flume-env.sh
6、配置flume-env.sh
三、使用flume
1、从指定网络端口采集数据输出到控制台
启动agent:
flume-ng agent -n a1 -c $FLUME_HOME/conf -f $FLUME_HOME/conf/netcat-memory-logger.conf -Dflume.root.logger=INFO,console
-n:实例名
-c:配置文件路径
-f:配置文件名称
-Dflume.root.logger:指定输出到控制台
通过telnet进行验证(注意:配置文件中a1.sources.r1.bind=localhost,则只能在本机用telnet进行验证,要远程验证需改成真实ip)
效果如下:
2、监控一个文件实时采集新增的数据输出到控制台
在配置文件中修改source部分即可:
# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /home/hadoop/data/data.log
a1.sources.r1.shell = /bin/sh -c
3、A服务器上的日志实时采集到B服务器上
源服务器上的agent采用avro的sink,目标服务器上的agent采用avro source,对应修改的部分如下:
# Describe/configure the source
a2.sources.r2.type = avro
a2.sources.r2.bind = 192.168.199.151
a2.sources.r2.port = 44444
# Describe the sink
a1.sinks.k1.type = avro
a1.sinks.k1.hostname= 192.168.199.151
a1.sinks.k1.port=44444
注意:接收数据的agen需先启动
总结:
flume一般只需通过配置文件进行配置,主要配置source,channel,sink,以及三者之间的对应关系