介绍
source: 搜集信息
channel:传递信息
sink:存储信息
概念
- Flume支持用户建立多级流,多个agent可以协同工作,并且支持Fan-in、Fan-out、Contextual Routing、Backup Routes.
- Flume提供了大量内置的Source、Channel和Sink类型。不同类型的Source,Channel和Sink可以自由组合。组合方式基于用户设置的配置文件.
- Flume在传完文件之后,将会修改文件的后缀,变为.COMPLETED。
如果一个source对应多个channel,默认就是每个channel是同样的一份数据,会把这批数据复制N份发送到N个channel中,所以如果某个channel满了会影响整体的速度.
flume组件启动顺序:channels——>sinks——>sources,关闭顺序:sources——>sinks——>channels.
案例1
example.conf
#agent1表示代理名称
#对agent1的各个组件命名
agent1.sources=source1
agent1.sinks=sink1
agent1.channels=channel1
#配置source1
agent1.sources.source1.type=spooldir
agent1.sources.source1.spoolDir=/usr/aboutyunlog
agent1.sources.source1.channels=channel1agent1.sources.source1.fileHeader = false
#配置sink1
agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path=hdfs://master:8020/aboutyunlog
agent1.sinks.sink1.hdfs.fileType=DataStream
agent1.sinks.sink1.hdfs.writeFormat=TEXT
agent1.sinks.sink1.hdfs.rollInterval=4agent1.sinks.sink1.channel=channel1
#配置channel1
agent1.channels.channel1.type=file
agent1.channels.channel1.checkpointDir=/usr/aboutyun_tmp123
agent1.channels.channel1.dataDirs=/usr/aboutyun_tmp
启动
./bin/flume-ng agent -n agent1 -c conf -f example.conf -Dflume.root.logger=DEBUG,console
在/usr/aboutyunlog下新建txt并写入内容
查看结果
/opt/hadoop/bin/hadoop fs -ls /aboutyunlog
/opt/hadoop/bin/hadoop fs -cat /aboutyunlog/FlumeData.1467471199682
案例2
example.conf
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
启动
-c/--conf 后跟配置目录,-f/--conf-file 后跟具体的配置文件,-n/--name 指定agent的名称
bin/flume-ng agent --conf conf --conf-file example.conf --name a1 -Dflume.root.logger=INFO,console
参考文章
官网API-DeveloperGuide
(重要)官网API-UserGuide
让你快速认识flume及安装和使用flume1.5传输数据(日志)到hadoop2.2
Flume内置channel,source,sink三组件介绍
flume参考文档
flume简介及配置实战
flume组件类型