Flume是Cloudera提供的日志收集系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 
Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统
系统:centos6.0
服务器列表:
192.168.1.117 flume-master
192.168.1.117 flume-node01
192.168.1.117 flume-node02
在每台服务器的/etc/hosts都加上。
安装JAVA环境
安装jdk1.6.0_31
在oracle官网下载jdk-6u31-linux-i586-rpm.bin
mkdir -p /usr/java/
复制jdk-6u30-linux-i586-rpm.bin到/usr/java目录下
cd /usr/java
然后更改文件权限:
chmod +x jdk-6u31-linux-i586-rpm.bin
./jdk-6u30-linux-i586-rpm.bin
vi /etc/profile,在文件最后面输入:
JAVA_HOME=/usr/java/jdk1.6.0_31
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
更新配置文件:
source /etc/profile
查看java版本:java -version 或者java -version
给java命令做个软连接,要不然flume启动时会找不到java
Ln -s /usr/java/java/jdk1.6.0_31/bin/java /usr/bin/java

使用cloudera的源来进行安装flume,使用的系统为CentOS 6.0,64位的系统。
1. 安装cloudear的源
a. 下载
b. 安装
yum localinstall --nogpgcheck /usr/local/src/cdh3-repository-1.0-1.noarch.rpm
c. 导入RPM-GPG-KEY
d. 安装flume
yum install flume flume-master flume-node
执行过这一步,如果出现以下信息:
Error Downloading Packages:
flume-0.9.4+25.40-1.noarch: failure: RPMS/noarch/flume-0.9.4+25.40-1.noarch.rpm from cloudera-cdh3: [Errno 256] No more mirrors to try.

那么,需要再执行一次:
yum install flume flume-master flume-node
会自动安装相关的依赖包,如果只作为node,可以只安装flume和flume-node而不安装flume-master
2. 创建配置
cloudera的软件包都使用alternatives来配置配置文件。
a. 复制配置文件
cp -r /etc/flume/conf.empty /etc/flume/conf.my_cluster
可以叫你想叫任何名字
b. 查看配置文件
alternatives --display flume-conf
c. 安装新的自定义配置
alternatives --install /etc/flume/conf flume-conf /etc/flume/conf.my_cluster 50
d. 确认安装
alternatives --display flume-conf
flume-conf - status is auto.
link currently points to /etc/flume/conf.my_cluster
/etc/flume/conf.empty - priority 30
/etc/flume/conf.my_cluster - priority 50
Current `best' version is /etc/flume/conf.my_cluster.
配置文件目录/etc/flume/conf/会自动链接到我们制定的目录中/etc/flume/conf.my_cluster。
3. 修改配置文件
a. 所有节点设置master(多个master时)
vi /etc/flume/conf/flume-site.xml
 <property> 
   <name>flume.master.servers</name> 
   <value>master01,master02,...</value> 
   <description>This is the address for the config servers status  
   server (http)  
   </description> 
 </property> 
 <property> 
   <name>flume.master.serverid</name> 
   <value>id</value> 
   <description>The unique identifier for a machine in a  
   Flume Master ensemble. Must be different on every  
   master instance.</description> 
 </property> 

flume.master.servers:用逗号分隔多个master地址列表
flume.master.serverid:master的唯一标识
b. 启动master节点
server flume-master start
chkconfig flume-master on
c. 在a步骤中设置了各个node节点的master后,可以启动node节点
service flume-node start
4. 检验flume
启动flume shell
flume shell
[flume (disconnected)] connect host
如果有修改过adminport或者reportport,可以使用
connect host[:adminport=35873[:reportport=45678]]
获得各个子节点的状态
flume master01:35873:45678] getnodestatus
flume的所有节点的配置都可以通过flume shell完成,默认使用内存存储各个节点的配置信息,可以使用ZooKeeper保存所有节点的配置信息。