码迷,mamicode.com
首页 > Web开发 > 详细

【Flume】flume的多路复用技术multiplexing

时间:2015-01-13 10:29:07      阅读:1361      评论:0      收藏:0      [点我收藏+]

标签:flume   复用   复制   通道   

多路复用技术意在可以将一个event根据配置信息发送特定的channel上。

A source instance can specify multiple channels, but a sink instance can only specify one channel.

Flume supports fanning out the flow from one source to multiple channels. There are two modes of fan out, replicating and multiplexing

flume支持的从source到多个channel有两种输出方式:复制 和 复用

1、复制模式下,source收到的event data是输出到配置的所有channel上

2、复用模式下,source收到的event data是输出到配置的特定的channel上

首先这种模式的选择,flume中通过selector选择器来选择,默认是复制模式

# list the sources, sinks and channels in the agent
agent_foo.sources = avro-AppSrv-source1
agent_foo.sinks = hdfs-Cluster1-sink1 avro-forward-sink2
agent_foo.channels = mem-channel-1 file-channel-2

# set channels for source
agent_foo.sources.avro-AppSrv-source1.channels = mem-channel-1 file-channel-2

# set channel for sinks
agent_foo.sinks.hdfs-Cluster1-sink1.channel = mem-channel-1
agent_foo.sinks.avro-forward-sink2.channel = file-channel-2

# channel selector configuration
agent_foo.sources.avro-AppSrv-source1.selector.type = multiplexing
agent_foo.sources.avro-AppSrv-source1.selector.header = State
agent_foo.sources.avro-AppSrv-source1.selector.mapping.CA = mem-channel-1
agent_foo.sources.avro-AppSrv-source1.selector.mapping.AZ = file-channel-2
agent_foo.sources.avro-AppSrv-source1.selector.mapping.NY = mem-channel-1 file-channel-2
agent_foo.sources.avro-AppSrv-source1.selector.default = mem-channel-1
想上面这种情况就是一个复用通道的模式,这里的header是event 数据的header,根据header的值来判断输出到哪一个通道上。

当然上面这种情况适用于将数据源收集代码耦合在自身应用代码中的情况,因为解耦后通过其它方式而不涉及代码来收集数据,你是无法决定这个event的header数据内容的。


复制模式就更简单了,略!


【Flume】flume的多路复用技术multiplexing

标签:flume   复用   复制   通道   

原文地址:http://blog.csdn.net/simonchi/article/details/42672561

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!