Flume安装部署
- Flume的安装(非常简单)
上传安装包到数据源所在节点上,实际上不是数据源节点也是可以的,只要运行Flume的这台机器与数据源节点的这台机器能够通过某种协议进行通信即可。
然后解压tar –zxvf apache-flume-1.8.0-bin.tar.gz,并修改(mv)文件名为flume
然后进入flume的目录,修改conf下的flume-env.sh,没有的话复制(cp)flume-env.sh.template,在里面配置JAVA_HOME为jdk的根目录。
- 根据数据采集需求配置采集方案,描述在配置文件中(文件名可任意自定义)
- 指定采集方案配置文件,在相应的节点上启动flume agent
先用一个最简单的例子来测试一下程序环境是否正常。重点是体会一下Flume三个组件之间该怎么配置。
需求:往一个网络端口上发送数据,Flume监听该端口,把这个端口里面接收到的数据收集起来,并下沉到终端上以日志的形式打印出来。
1、 配置采集方案(在flume的conf目录下新建一个文件)
vi netcat-logger.conf(命名规则:source-sink.conf)
#从网络端口接受数据,下沉到logger
#采集配置文件,netcat-logger.conf
#定义这个agent中各组件的名字
a1.sources=r1
a1.sinks=k1
a1.channels=c1
#描述和配置source组件:r1
# netcat类型用来监听端口数据源
a1.sources.r1.type=netcat
a1.sources.r1.bind=localhost
a1.sources.r1.port=44444
#描述和配置sink组件:k1
a1.sinks.k1.type=logger
#描述和配置channel组件,此处使用是内存缓存的方式
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
#描述和配置source channel sink之间的连接关系
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
2、 启动agent去采集数据
bin/flume-ng agent -c conf –f conf /netcat-logger.conf –n a1 -Dflume.root.logger=INFO,console
示例:
bin/flume-ng agent --conf conf --conf-file conf/netcat-logger.conf --name a1 -Dflume.root.logger=INFO,console
解释1:
-c conf 指定flume自身的配置文件所在目录
-f conf/netcat-logger.conf 指定我们所描述的采集方案
-n a1 指定本次启动agent的名字,与采集方案配置文件中一致
解释2:
-c (或--conf) : flume自身所需的conf文件路径
-f (--conf-file) : 自定义的flume配置文件,也就是采集方案文件
-n (--name): 自定义的flume配置文件中agent的name
3、 测试
先要往agent采集监听的端口上发送数据,让agent有数据可采。
随便在一个能跟agent节点联网的机器上,也可以在本机:telnet agent-hostname port (如:telnet localhost 44444)
注意:如果telnet还没有安装,则需要执行yum install -y telnet进行安装