一、Flume入门案例
先用一个最简单的例子来测试一下程序环境是否正常
1、案例需求说明
2、组件选择
(1)Source组件 NetCat:
(2)Channel组件Memory Channel:
capacity: 缓存的容量 ,可缓存的event的数量
transactionCapacity: 事务容量,支持出错情况下的event回滚事件数量。
(3)Sink组件: logger Sink
3、部署配置实现
(1)创建部署配置文件
在flume的安装目录下,新建一个文件夹,myconf
# cd myconf
# vi netcat-logger.conf
#定义这个agent种各组件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1#描述和配置source组件r1
a1.sources.r1.type = netcat
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 9999#source和channel关联
a1.sources.r1.channels = c1#描述和配置sink组件k1
a1.sinks.k1.type = logger
a1.sinks.k1.channel = c1#描述和配置channel组件
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
(2)启动flume agent:
[root@hdp-01 apache-flume-1.6.0-bin]# bin/flume-ng agent -n a1 -c conf -f myconf/netcat-logger.conf -Dflume.root.logger=INFO,console
解释:
agent 运行一个采集器
-n a1 指定我们这个agent的名字
-c conf 指定flume自身的配置文件所在目录
-f conf/netcat-logger.conf 指定自定义的采集方案
在工作环境中的命令为:
nohup bin/flume-ng agent -n a1 -c conf -f myconf/netcat-logger.conf 1>/dev/null 2>&1 &
解释:
将一个程序运行在后台,
1的意思是将1里面的标准输出(正确输出)重定向到dev/null文件(抛弃掉,不会存储)里面去,
2的意思是将2里面的错误输出同样重定向到dev/null文件中
&的意思是将程序放到后台执行
(3)测试
往agent的source所监听的端口上发送数据,让agent有数据可采。
通过telnet命令向端口发送消息:
[root@hdp-01 ~]# telnet hdp-01 9999
如果没有telnet命令,用yum安装一个即可:
yum -y install telnet
就可以通过日志查看:
注意: 注释不能写在配置的后面,只能单独一行写。