Flume 是一套分布式的日志收集系统,支持各种数据输出,并支持将数据合并导入hadoop。
Flume 安装需要一定的软件环境:
1.jdk 1.6+
2.hadoop 安装包
3.flume 软件包
jdk 可以从网上下载,解压后在 /etc/profile 中增加java_home的环境变量即可
hadoop 安装包可以到 https://ccp.cloudera.com/display/SUPPORT/CDH3+Downloadable+Tarballs 下载
安装完成需要声明这些变量:
export JAVA_HOME=/usr/local/jdk
export PLATFORM_ROOT=/home/pplive/platform
export HADOOP_HOME=$PLATFORM_ROOT/hadoop
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
export HADOOP_CONF_DIR=$PLATFORM_ROOT/config
export LOG_ROOT=/home/pplive/logs
可放入 /etc/profile 中自动执行
其他具体的安装可以咨询单超
flume 整体安装过程:
文件下载也是在:
https://ccp.cloudera.com/display/SUPPORT/CDH3+Downloadable+Tarballs
下载完成解压至 /usr/local/flume
申明变量:
export FLUME_CONF_DIR=/usr/local/flume/conf/
可以放入 /etc/profile
flume 配置:
修改 /usr/local/flume/conf/flume-site.xml
修改 flume.master.servers的value为master ip或主机名
flume-conf.xml 为一些详细配置,如果不关注性能可以不配
flume 启动
先启动 master,在启动 cool 和 agent
master 启动方式:
/usr/local/flume/bin/flume master
启动后,通过 http://IP:35871/flumemaster.jsp
来查看master 方式
coll和agent 启动方式
/usr/local/flume/bin/flume node -n 名字 # 可在配置文件中定义
启动后可以在master的管理界面中看到这台机器。
其他启动后也类似。
执行完成后可以看到发下所有的节点,及节点情况
然后可以通过 config来配置各各节点的角色。
比如:
这个配置使 agent01 ,通过tail的方式把 /home/nginx/logs/2010/access.log的文件读出来。
然后以 end -to-end 的方式传输到 172.16.3.103 的20000 端口上。
如果有多台机器,只需要改变机器名即可。可以将多台机器的日志汇总至172.16.3.103 的20000 端口上。
下面的框是批量输入框,可以方便的批量配置一堆机器。
配置完成后就会有这样的一个状态表。
上面我还配置了一个接收节点
Souce 是 collectorSource(20000), sink 是text("/tmp/logs",raw)
Flume会自动打开一个端口,并把收到的数据放入/tmp/logs中。
上面就是一个简单的配置,如果需要将文件写入其他位置或hdfs可以通过写其他链接即可。
如果还有其他的需求可以从下面链接去查找。
http://archive.cloudera.com/cdh/3/flume/UserGuide/index.html