一.Flume的安装部署:
Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境
安装包的下载地址为:http://www-us.apache.org/dist/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz
1. 上传安装包到数据源所在节点上;
2. 然后解压:tar -zxvf apache-flume-1.6.0-bin.tar.gz -C /usr/local/src/
3. 然后进入flume的目录,修改conf下的flume-env.sh,在里面配置JAVA_HOME
4. 根据数据采集的需求配置采集方案,描述在配置文件中(文件名可任意自定义)
5. 指定采集方案配置文件,在相应的节点上启动flume agent
二.使用示例:
利用Flume来实现一个从Socket网络端口中采集数据,然后下沉到logger日志中的案例(源数据:网络端口)
1.配置采集方案:在Flume的conf目录下面编写一个netcat-logger.conf文件,内容如下:
# Name the components on this agent:a1:表示该agent的名字 #给三个组件取个名字 a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source #类型, 从网络端口接收数据,在本机启动, 所以type=spoolDir采集目录源,目录里有就采 a1.sources.r1.type = netcat a1.sources.r1.bind = shizhan2 a1.sources.r1.port = 44444 # Describe the sink type为logger意将数据输出至日志中(也就是打印在屏幕上) a1.sinks.k1.type = logger # Use a channel which buffers events in memory #下沉的时候是一批一批的, 下沉的时候是一个个event,Channel参数解释:
#type为memory意将数据存储至内存中 #capacity:默认该通道中最大的可以存储的event事件数量 #trasactionCapacity:每次最大可以从source中拿到或者送到sink中的event数量 a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
2.使用下面的命令启动Flume:启动agent去采集数据
# bin/flume-ng agent --c conf -f conf/netcat-logger.conf --n a1 -Dflume.root.logger=INFO,console
-c conf:指定flume自身的配置文件所在目录
-f conf/netcat-logger.conf:指定我们所描述的采集方案
-n a1:指定我们这个agent的名字
3.传入数据:在另一台机器上执行下面的命令:先要往agent采集监听的端口上发送数据,让agent有数据可采
然后在启动flume的另一端有数据输出