Flume集群配置+案例
解压flume安装包
[root@master src]# tar -zxvf apache-flume-1.6.0-bin.tar.gz -C /usr/local/src
[root@master src]# cd /usr/local/src/
[root@master src]# mv apache-flume-1.6.0-bin/ flume //更名
配置环境变量
[root@master src]# vim /etc/profile
[root@master src]# source /etc/profile //刷新使环境变量生效
###flume
export FLUME_HOME=/usr/local/src/flume
export PATH=$PATH:$FLUME_HOME/bin
修改配置文件
[root@master src]# cd /usr/local/src/flume/conf
[root@master conf]# mv flume-env.sh.template flume-env.sh
[root@master conf]# vim flume-env.sh
flume监听案例
首先写一个agent的配置文件
[root@master flume]# mkdir job //目录名随意
[root@master flume]# cd job/
[root@master job]# touch netcat-flume-logger.conf //agent的文件名随意(但需见名知意)
[root@master job]# vim netcat-flume-logger.conf
# Name the components on this agent //命名当前agent的组件(在一个agent中可以有多个组件)也可以一台机器上有多个agent 但名字不能重复
a1.sources= r1
a1.sinks= k1
a1.channels= c1
# Describe/configure the source //描述配置当前source
a1.sources.r1.type= netcat //要配置source的类型
a1.sources.r1.bind= master //监听的机器名或ip
a1.sources.r1.port= 44444 //监听机器的端口
# Describe the sink //定义sink
a1.sinks.k1.type= logger //sink的类型
# Use a channel which buffers events in memory //定义channel
a1.channels.c1.type= memory //channel的类型
a1.channels.c1.capacity= 1000 //channel的容量(1000代表1000个事件)
a1.channels.c1.transactionCapacity= 100 //传输的事物数量(要比capacity小)
# Bind the source and sink to the channel //绑定source,sink走哪一个channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1 //sink只能接受一个channel,一个channel可以给多个sink
flume-ng agent
--conf job/ //agent所在的目录名
--conf-file job/netcat-flume-logger.conf //所配置的agent文件
--name a1 //agent的名字
-Dflume.root.logger=INFO,console //打印的格式 打印到控制台
flume的分布式不像是hadoop搭建一样 三台机器都要有hadoop 而是source sink的分布式
需要针对特定的任务启动相应的服务 不像是hadoop那样启动一个进程再去提供服务
flume跨集群通信才需要三台机器都安装flume
Flume监听整个文件夹里的追加文件要用TAILDIR模块
TAILDIR模块是在flume 1.7 才有的 原因就是flume版本过低