操作系统:CentOS 5.5
JDK版本:1.7.0_21
Flume版本:1.3.1
Hadoop版本:0.20.2
配置1个agent ,2个collector,1个storage
2.安装步骤JDK+flume
#下载安装jdk1.7
Oracle.com/technetwork/java/javase/downloads/index.html
tar zxvf jdk-7u21-linux-x64.gz -C /usr/local/
#/etc/profile增加环境变量
pathmunge /usr/local/jdk1.7.0_21/bin
export JAVA_HOME=/usr/local/jdk1.7.0_21/
export JRE_HOME=/usr/local/jdk1.7.0_21/jre
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
#验证java
java -version
#下载安装flume 1.3.1
Flume的下载地址
tar zxvf flume-distribution-0.9.4-bin.tar.gz -C /usr/local/
#/etc/profile增加环境变量
export FLUME_HOME=/usr/local/apache-flume-1.3.1-bin
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=.:$PATH::$FLUME_HOME/bin
#验证 flume
# flume-ng version
Flume 1.3.1
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 77b5d2885fecb3560a873bd89f49cbac8a010347
Compiled by hshreedharan on Fri Dec 21 22:14:21 PST 2012
From source with checksum 2565bdfd8b6af459dbf85c6960f189a5
3.一个简单的例子
#设置配置文件
[root@cc-staging-loginmgr2 conf]# cat example.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
#命令参数说明
-c conf 指定配置目录为conf
-f conf/example.conf 指定配置文件为conf/example.conf
-n a1 指定agent名字为a1,需要与example.conf中的一致
-Dflume.root.logger=INFO,console 指定DEBUF模式在console输出INFO信息
#启动agent
cd /usr/local/apache-flume-1.3.1-bin
flume-ng agent -c conf -f conf/example.conf -n a1 -Dflume.root.logger=INFO,console
2013-05-24 00:00:09,288 (lifecycleSupervisor-1-0) [INFO - org.apache.flume.source.NetcatSource.start(NetcatSource.java:150)] Source starting
2013-05-24 00:00:09,303 (lifecycleSupervisor-1-0) [INFO - org.apache.flume.source.NetcatSource.start(NetcatSource.java:164)] Created serverSocket:sun.nio.ch.ServerSocketChannelImpl[/127.0.0.1:44444]
#在另一个终端进行测试
[root@cc-staging-loginmgr2 conf]# telnet 127.0.0.1 44444
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
hello world!
OK
#在启动的终端查看console输出
2013-05-24 00:00:24,306 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:70)] Event: { headers:{} body: 68 65 6C 6C 6F 20 77 6F 72 6C 64 21 0D hello world!. }
#测试成功,flume可以正常使用