flume集群搭建

flume其实没有集群概念,每一个flume都是一个独立的个体,每一个flume agent收集数据汇总到flume collector,由collector写入flume storage。html

我如今有两台虚拟机,一台是叫master,当flume agent;一台叫slave1,当flume collector,实现agent链接collector向collector发送日志,最终collector将日志写入到hdfs。web

两台虚拟机事先配置好了jdk和hadoop。apache

 

一、解压安装ide

   tar -zxvf apache-flume-1.6.0-bin.tar.gzoop

二、配置各机器环境变量 /etc/profileui

 

三、配置flume JAVA_HOMEspa

cd /usr/local/apache-flume-1.6.0-bin/conf,把flume-env.sh.template重命名为flume-env.sh,往里添加 export JAVA_HOME=/usr/lib/jdk1.7.0_75日志

四、复制flume到其余节点(只是各自的启动文件不一样)orm

 

cd /usr/localhtm

       scp -r apache-flume-1.6.0-bin slave1:~而后再移动到响应目录下

五、配置agent启动文件

在master节点上,在flume的conf目录,将flume-conf.properties.template重命名为flume-test.conf(其实什么名字均可以,只要你启动的时候调用对就能够了),而后配置source,channel,sink。

我这里agent source是spooldir ,channel是memory,sink是avro,三层类别详细说明见flume官网

在slave1节点,collector三层,source是avro,channel是memory,sink是hdfs

六、启动flume

先启动slave1节点,再启动master节点

flume-ng agent -n agent -c /usr/local/apache-flume-1.6.0-bin/conf  -f /usr/local/apache-flume-1.6.0-bin/conf/flume-test.conf -Dflume.root.logger=DEBUG,console

flume-ng agent -n agent -c /usr/local/apache-flume-1.6.0-bin/conf  -f /usr/local/apache-flume-1.6.0-bin/conf/flume-test.conf -Dflume.root.logger=DEBUG,console

启动命令同样,-n是名字,-c是配置文件的目录,-f是配置文件,-D是日志级别。

而后在master的/home/zhanghuan/Documents/flume-test目录下添加文件,最后在hdfs里查看该文件,若是存在该文件,则表示flume搭建成功,不然失败。

注意,搭建过程当中可能出现以下错误:

Could not configure sink  sink1 due to: No channel configured for sink: sink1
org.apache.flume.conf.ConfigurationException: No channel configured for sink: sink1

则仔细查看配置文件,一个source能够对应多个channel,因此是channels,agent.sources.source1.channels = channel1,

可是一个sink对应一个channel,因此是channel,agent.sinks.sink1.channel = channel1,请注意。

相关文章
相关标签/搜索