Flume 的 Source、Channel和Sink的内置类型如下:
(可参考官网修改配置 http://flume.apache.org/FlumeUserGuide.html)
Flume Source
Source类型 |
说明 |
Avro Source |
支持Avro协议(实际上是Avro RPC),内置支持 |
Thrift Source |
支持Thrift协议,内置支持 |
Exec Source
扫描二维码关注公众号,回复:
5396326 查看本文章
|
基于Unix的command在标准输出上生产数据 |
JMS Source |
从JMS系统(消息、主题)中读取数据,ActiveMQ已经测试过 |
Spooling Directory Source |
监控指定目录内数据变更 |
Taildir Source |
|
Twitter 1% firehose Source |
通过API持续下载Twitter数据,试验性质 |
Kalfka Source |
支持Kafka |
Netcat Source |
监控某个端口,将流经端口的每一个文本行数据作为Event输入 |
Sequence Generator Source |
序列生成器数据源,生产序列数据 |
Syslog Sources |
读取syslog数据,产生Event,支持UDP和TCP两种协议 |
HTTP Source |
基于HTTP POST或GET方式的数据源,支持JSON、BLOB表示形式 |
Stress Source |
|
Legacy Sources |
兼容老的Flume OG中Source(0.9.x版本) |
Custom Source |
自定义Source实现 |
Scribe Source |
|
注:在1.6.0版本才加入了Kafka Source。
source是被动接收数据的。
Flume Channel
Channel类型 |
说明 |
Memory Channel |
Event数据存储在内存中 |
JDBC Channel |
Event数据存储在持久化存储中,当前Flume Channel内置支持Derby |
Kafka Channel |
Event数据存储在Kafka cluster中 |
File Channel |
Event数据存储在磁盘文件中 |
Spillable Memory Channel |
Event数据存储在内存中和磁盘上,当内存队列满了,会持久化到磁盘文件(当前试验性的,不建议生产环境使用) |
Pseudo Transaction Channel |
测试用途 |
Custom Channel |
自定义Channel实现 |
注:flume的处理文件的速度大概在十几M每秒。
Flume Sink
Sink类型 |
说明 |
HDFS Sink |
数据写入HDFS |
Hive Sink |
|
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,试验性质的 |
Kafka Sink |
数据写入Kafka topic |
Custom Sink |
自定义Sink实现 |
另外还有ChannelSelector、Sink Processor、EventSerializer、Interceptor等组件,可以参考官网提供的用户手册。
存储到hdfs,要注意存储速度,几十M/s。条测性能的可以扩大机器数。
Flume Interceptors
Interceptor类型 |
说明 |
Timestamp Interceptor |
在event的header中添加一个key叫:timestamp,value为当前的时间戳。 |
Host Interceptor |
在event的header中添加一个key叫:host,value为当前机器的hostname或者ip。 |
Static Interceptor |
可以在event的header中添加自定义的key和value。 |
UUID Interceptor |
用于在每个events header中生成一个UUID字符串,生成的UUID可以在sink中读取并使用 |
Morphline Interceptor |
http://kitesdk.org/docs/current/morphlines/morphlines-reference-guide.html |
Search and Replace Interceptor |
|
Regex Filtering Interceptor |
通过正则来清洗或包含匹配的events。 |
Regex Extractor Interceptor |
通过正则表达式来在header中添加指定的key,value则为正则匹配的部分。 |
Flume Channel Selectors
If the type isnot specified, then defaults to “replicating”.