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

多路复用技术意在可以将一个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数据内容的。

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

时间: 2024-10-13 22:43:38

【Flume】flume的多路复用技术multiplexing的相关文章

Lind.DDD.RedisClient~对StackExchange.Redis调用者的封装及多路复用技术

回到目录 两雄争霸 使用StackExchange.Redis的原因是因为它开源,免费,而对于商业化的ServiceStack.Redis,它将一步步被前者取代,开源将是一种趋势,商业化也值得被我们尊重,毕竟人家研究代码也不容易,做商品也很正常,当然这不是我们今天的重要,今天主要说一下对StackExchange.Redis的封装,它与ServicesStack.redis最大的不同就是,它没有线程池的概念,这对于初学者绝对是个坑,大家使用时一定要注册,StackExchange.redis的对

控制文件的多路复用技术

在Windows操作系统中,如果注册表文件被损坏了,就会影响操作系统的稳定性.严重的话,会导致操作系统无法正常启动.而控制文件对于Oracle数据库来说,其作用就好象是注册表一样的重要.如果控制文件出现了意外的损坏,那么此时Oracle数据库系统很可能无法正常启动.为此作为Oracle数据库管理员,务必要保证控制文件的安全. 在实际工作中,数据库管理员可以通过备份控制文件来提高控制文件的安全性.但是笔者认为这是下下之策.因为当控制文件出现损坏时,通过备份文件来恢复的话,会出现数据库在一段时间内的

[libevent]支持I/O多路复用技术

Libevent的核心是事件驱动.同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows.Linux.Unix等不同平台上却各有不同,如何能提供优雅而统一的支持方式,是首要关键的问题. 统一的关键 Libevent支持多种I/O多路复用技术的关键就在于结构体eventop,这个结构体前面也曾提到过,它的成员是一系列的函数指针, 定义在event-internal.h文件中: struct eventop { const char *name; void *(*

多路复用技术

复用的概念是从提高通信的有效性角度提出来的,其主要目的是为了有效地利用带宽.多路复用通常分为频分多路复用.时分多路复用.波分多路复用.码分多址和空分多址. 1. 频分多路复用(FDM,Frequency Division Multiplexing) 频分多路复用的基本原理是:如果每路信号以不同的载波频率进行调制,而且各个载波频率是完全独立的,即各个信道所占用的频带不相互重叠.相邻信道之间用“警戒频带”隔离,那么每个信道就能独立地传输一路信号. 频分多路复用的主要特点是,信号被划分成若干通道(频道

[Flume] - flume安装

Apache Flume是一个分布式的.可靠的.高效的系统,可以将不同来源的数据收集.聚合并移动到集中的数据存储中心上.Apache Flume不仅仅只是用到日志收集中.由于数据来源是可以定制的,flume可以使用传输大量的自定义event数据,包括但不限于网站流量信息.社会媒体信息.email信息以及其它可能的数据.Flume是Apache软件基金组织的顶级项目.官网http://flume.apache.org/. 一.安装 flume提供了二进制安装版本,所有我们可以选择直接下载二进制安装

I/O多路复用技术

典型应用于以下场合 1.处理多个描述字时,比如同时处理套接字和磁盘IO.终端IO 2.一个客户同时处理多个套接字 3.服务器既要处理监听套接字,又要处理已连接套接字 4.既要处理TCP.也要处理UDP 5.一个服务器要处理多个服务和协议 I/O多路复用不局限于网络编程,也可以用于其他程序. UNIX中五种I/O模型 1.阻塞I/O 2.非阻塞I/O 3.I/O多路复用 4.异步I/O 5.信号驱动I/O 信号驱动模型 5种I/O模型的比较 select函数有三种使用方式 1.函数阻塞直至有起码一

Java IO多路复用技术简介

<span style="font-size:18px;">package com.winwill.nio; /** * @author qifuguang * @date 15-2-4 下午2:07 */ public class TimeServerMain { public static void main(String[] args) throws Exception { // 启动时间服务器 new Thread(new SelectorTimeServer())

CCNP路由实验之十七 广域网技术之一

?? CCNP路由实验之十七广域网技术之一 广域网(WAN,Wide Area Network)也称远程网(long haul network ).通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络.广域网的通信子网可以利用公用分组交换网.卫星通信网和无线分组交换网,将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的.如因特网(Internet)是世界范围内最大的广域网.广域网WAN一般最多只包含O

项目三. 基于图像压缩的视频监控系统

项目三. 基于图像压缩的视频监控系统 Sprint0-产品设计与规划 基于图像压缩的视频监控系统 1. 产品功能演示 在linux系统上运行程序,弹出登录界面,输入地址.端口信息,弹出视频监控界面,实时传出视频信息. 2. 功能模块分析 采集端: 图像采集子系统 图像编码子系统 传输子系统 主程序 监控端: 传输子系统 图像编码子系统 传输子系统 主程序 Sprint1-基于Epoll架构的采集端程序框架设计 第1课-Epoll机制精通 大纲: v  为什么用Epoll? 阻塞型IO与多路复用