flume组件汇总 source、sink、channel

Flume Source

Source类型 说明
Avro Source 支持Avro协议(实际上是Avro RPC),内置支持
Thrift Source 支持Thrift协议,内置支持
Exec Source 基于Unix的command在标准输出上生产数据
JMS Source 从JMS系统(消息、主题)中读取数据,ActiveMQ已经测试过
Spooling Directory Source 监控指定目录内数据变更
Twitter 1% firehose Source 通过API持续下载Twitter数据,试验性质
Netcat Source 监控某个端口,将流经端口的每一个文本行数据作为Event输入
Sequence Generator Source 序列生成器数据源,生产序列数据

Syslog Sources

syslogtcp

multiport_syslogtcp

syslogudp

读取syslog数据,产生Event,支持UDP和TCP两种协议
HTTP Source 基于HTTP POST或GET方式的数据源,支持JSON、BLOB表示形式
Legacy Sources 兼容老的Flume OG中Source(0.9.x版本)
Avro Legacy Source
Thrift Legacy Source
Scribe Source
Custom Source 自定义Source

Flume Sink

Sink类型 说明
HDFS Sink 数据写入HDFS
Logger Sink 数据写入日志文件
Avro Sink 数据被转换成Avro Event,然后发送到配置的RPC端口上
Thrift Sink 数据被转换成Thrift Event,然后发送到配置的RPC端口上
IRC Sink 数据在IRC上进行回放
File Roll Sink 存储数据到本地文件系统
Null Sink 丢弃到所有数据
HBase Sink 数据写入HBase数据库
Morphline Solr Sink 数据发送到Solr搜索服务器(集群)
ElasticSearch Sink 数据发送到Elastic Search搜索服务器(集群)
Kite Dataset Sink 写数据到Kite Dataset,试验性质的
Custom Sink 自定义Sink实现

Flume Channel

Channel类型 说明
Memory Channel Event数据存储在内存中
JDBC Channel Event数据存储在持久化存储中,当前Flume Channel内置支持Derby
File Channel Event数据存储在磁盘文件中
Spillable Memory Channel Event数据存储在内存中和磁盘上,当内存队列满了,会持久化到磁盘文件(当前试验性的,不建议生产环境使用)
Pseudo Transaction Channel 测试用途
Custom Channel 自定义Channel实现

Channel Selector

Sink Processor

Event Serializer

Event Deserializers

在source组件上指定,反序列化,将输入(文件、流)解析成event的方式,

Deserializer类型 说明
LINE 默认值,将文本输入的每行转换成一个event
AVRO 读取avro文件,将其中的每条avro记录转换成一个event,每个event都附带着模式信息
BlobDeserializer 将整个二进制大数据转换成一个evnt,通常一个BLOB就是一个文件,比如PDF、JPG

比如:


1

2

a1.sources=s1

a1.sources.s1.deserializer=LINE

注意:

LINE有个设置每行字符个数的属性:deserializer.maxLineLength,默认是2048,大于这个字符数的行将被截断。

BlobDeserializer有个设置文件大小的属性:deserializer.maxBlobLength默认是100000000(大约95M),大于这个值的文件将被拆分成多个文件。

Event Serializers

在sink组将上指定,序列化,将event对象转换成文件的方式。

Serializer类型 说明
TEXT(Body Text Serializer) 默认值,将event中body里的数据不做改变的转换成输出流,event的header将被忽略
AVRO_EVENT(Avro Event Serializer) 将event转换成avro文件
BlobDeserializer 将整个二进制大数据转换成一个evnt,通常一个BLOB就是一个文件,比如PDF、JPG

Interceptor

拦截器可以修改或删除event。

拦截器可以组成拦截器链,中间用空格分隔,拦截器的配置顺序即是它们的执行顺序。

Handler类型 说明
Timestamp Interceptor 向event header中添加了timestamp变量,值是时间戳
Host Interceptor 向event header中添加了host变量,可以通%{host}引用(比如在HDFS sink中的路径占位符)
Static Interceptor 配置一个静态的值到event header里,多个静态值需要配多个static interceptor
UUID Interceptor 向event header里添加变量id,值是随机生成的uuid,可以用这个唯一标识一个event
Morphline Interceptor 使用morphline配置文件过滤event。
Regex Filtering Interceptor 使用正则表达式过滤(include或exclude)event。
Regex Extractor Interceptor 使用正则表达式来向header中添加key、value。

配置实例:


1

2

3

4

5

6

a1.sources=s1

...

a1.sources.s1.interceptors=i1 i2

a1.sources.s1.interceptors.i1.type=host

a1.sources.s1.interceptors.i1.hostHeader=host

a1.sources.s1.interceptors.i2.type=timestamp

type可以是全限定类名或者是别名

来自为知笔记(Wiz)

时间: 2024-10-28 12:44:19

flume组件汇总 source、sink、channel的相关文章

日志收集框架 Flume 组件之Source使用

上一篇简单介绍了Flume几个组件,今天介绍下组件其一的source,整理这些,也是二次学习的过程,也是梳理知识的过程. Source 中文译为来源,源作用:采集数据,然后把数据传输到channel上.例如:监控某个文件或者某个端口或某个目录,新增数据,新增文件的变化,然后传输到channel. 常用的的source类型,也是平常用的比较多的几种类型,如下: source类型 说明 Avro Source 支持avro协议,内置支持 Thrift Source 支持Thirft rpc ,内置支

Flume组件汇总2

Component Interface Type Alias Implementation Class org.apache.flume.Channel memory org.apache.flume.channel.MemoryChannel org.apache.flume.Channel jdbc org.apache.flume.channel.jdbc.JdbcChannel org.apache.flume.Channel file org.apache.flume.channel.

Flume内置channel,source,sink汇总

由于经常会使用到Flume的一些channel,source,sink,于是为了方便将这些channel,source,sink汇总出来,也共大家访问. Component Interface Type Alias Implementation Class *.Channel memory *.channel.MemoryChannel *.Channel jdbc *.channel.jdbc.JdbcChannel *.Channel file *.channel.file.FileChan

【Flume】【*】深入flume-ng的三大组件——source,channel,sink

概览 flume-ng中最重要的核心三大组件就是source,channel,sink source负责从源端收集数据,产出event channel负责暂存event,以备下游取走消费 sink负责消费通道中的event,写到最终的输出端上 以上是总体的一个简单结构图,下面我们来深入每一个组件的内部看看: 1.Source source接口的定义如下: @InterfaceAudience.Public @InterfaceStability.Stable public interface S

Flume监听文件目录sink至hdfs配置

一:flume介绍 Flume是一个分布式.可靠.和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力.,Flume架构分为三个部分 源-Source,接收器-Sink,通道-Channel. 二:配置文件 此配置文件source为一个目录,注意,该目录下的文件应为只读,不可写,且文件名不能相同,采用的channels为file,sink为hdfs,此处往hdfs写的策略是当时间达到3600s或者

Flume实时监控目录sink到hdfs

目标:Flume实时监控目录sink到hdfs,再用sparkStreaming监控hdfs的这个目录,对数据进行计算 1.flume的配置,配置spoolDirSource_hdfsSink.properties,监控本地的一个目录,上传到hdfs一个目录下. agent1.channels = ch1agent1.sources = spoolDir-source1agent1.sinks = hdfs-sink1 # 定义channelagent1.channels.ch1.type =

泛函编程(36)-泛函Stream IO:IO数据源-IO Source & Sink

上期我们讨论了IO处理过程:Process[I,O].我们说Process就像电视信号盒子一样有输入端和输出端两头.Process之间可以用一个Process的输出端与另一个Process的输入端连接起来形成一串具备多项数据处理功能的完整IO过程.但合成的IO过程两头输入端则需要接到一个数据源,而另外一端则可能会接到一个数据接收设备如文件.显示屏等.我们在这篇简单地先介绍一下IO数据源Source和IO数据接收端Sink. 我们先用一个独立的数据类型来代表数据源Source进行简单的示范说明,这

React Native常用第三方组件汇总--史上最全 之一

把我认为最好的知识,拿来与他人分享,是这一生快事之一! React Native 项目常用第三方组件汇总: react-native-animatable 动画 react-native-carousel 轮播 react-native-countdown 倒计时 react-native-device-info 设备信息 react-native-fileupload 文件上传 react-native-icons 图标 react-native-image-picker 图片选择器 reac

Flume NG 学习笔记(十) Transaction、Sink、Source和Channel开发

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一.Transaction interface Transaction接口是基于flume的稳定性考虑的.所有主要的组件(sources.sinks.channels)都必须使用Flume Transaction.我们也可以理解Transaction接口就是flume的事务,sources和sinks的发送数据与接受数据都是在一个Transaction里完成的. 从上图中可以看出,一个Transaction在Channel实