文章目录
一、部署flume
flume的安装非常简单
1、上传安装包到数据源所在的节点上
2、解压安装包到数据源所在的节点上
然后 tar -zxvf apache-flume-1.6.0-bin.tar.gz
3、修改conf下的flume-env.sh
然后进入flume目录里面的conf,修改conf下的flume-env.sh,在里面配置JAVA_HOME
export JAVA_HOME=/export/servers/jdk1.8.0_141
4、添加环境变量
Vim /etc/profile
export FLUME_HOME=/export/servers/apache-flume-1.6.0-bin
export PATH=:$FLUME_HOME/bin:$PATH
更新下环境变量,保证其生效
source /etc/profile
5、查看版本
flume-ng version
二、flume监测类型—netcat-logger.conf
接下来我们先用一个最简单的例子来测试一下程序环境是否正常
1、先在flume/conf下新建一个文件
vi netcat-logger.conf
(从网络接口接收数据,下沉到logger)
通过监听指定的IP和端口来传输数据,它会将监听到的每一行数据转化成一个Event写入到Channel中
a1是agent的名字
#定义这个agent中各组件的名字
a1.sources = r1 #给source命名
a1.sinks = k1 #给sink命名
a1.channels = c1 #给channel命名
#描述和配置source组件:r1
a1.sources.r1.type = netcat #source的类型是netcat
a1.sources.r1.bind = localhost #source绑定的主机
a1.sources.r1.port = 44444 #端口号
#描述和配置sink组件:k1
a1.sinks.k1.type = logger #sink的类型是杯子
#描述和配置channel组件,此处使用是内存缓存的方式
a1.channels.c1.type = memory #channel的类型是内存型
a1.channels.c1.capacity = 1000 #channel能存储最大event(消息)的个数
a1.channels.c1.transactionCapacity = 100 #添加或移除event的数量,最多达到多少条必须提交事务
#描述和配置source channel #sink之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
这里是将三个组件连接起来
扫描二维码关注公众号,回复:
9782979 查看本文章
注意:一个source可以绑定多个channel,但是一个sink只能绑定一个Channel
2、启动命令
flume-ng agent -n a1 -c $FLUME_HOME/conf -f /export/servers/apache-flume-1.6.0-bin/conf/netcat-logger.conf -Dflume.root.logger=INFO,console
-n a1: 指定这个agent的名字
-c $FLUME_HOME/conf: 指定flume自身的配置文件所在的目录
-f /export/servers/apache-flume-1.6.0-bin/conf/netcat-logger.conf: 指定我们所描述的采集方案
-Dflume.root.logger=INFO,console: 可以不加,但是是为了方便我们观察输出到info日志到控制台
3、传输数据
可以复制一个窗口,然后telnet一下,往agent采集监听的端口上发送数据,让agent有数据可采
Telenet localhost 44444
然后输入hello
可以看到flume采集了
三、flume监测类型—spooldir-hdfs.conf
这是个监控目录的日志采集
1、文件配置
vim spooldir-hdfs.conf
2、启动命令
flume-ng agent -n a1 -c $FLUME_HOME/conf -f /export/servers/apache-flume-1.6.0/bin/conf/spooldir-hdfs.conf -Dflume.root.logger=INFO,console
3、测试
往/root/logs里添加文件(这是我们在spooldir文件里面配置的)
我们可以看到控制台有日志信息生成
然后我们可以看一下hdfs上flume目录(这也是我们配置spooldir文件里面配置的)