Flume提供了大量的Sink,下面主要介绍HDFS Sink、Avro Sink、Thrift Sink、Kafka Sink、HBase 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。 |
Hive Sink | 数据写入Hive。 |
Kafka Sink | 把数据写入Kafka Topic中。 |
HDFS Sink
HDFS Sink直接把Event数据写入Hadoop Distributed File System(HDFS)。HDFS Sink支持输出文本文件(text file)和序列文件(sequence file),同时还可以对数据进行压缩。数据文件可以根据固定时间间隔、文件大小或者Event数据数量创建。HDFS Sink需要Hadoop支持。
配置项 | 默认值 | 说明 |
---|---|---|
channels | 与Source连接的通道名称。 | |
type | hdfs | |
Hdfs.path | HDFS路径 |
HDFS Sink参考配置
a1.channels = c1
a1.sinks = k1
a1.sinks.k1.type = hdfs
a1.sinks.k1.channel = c1
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S
a1.sinks.k1.hdfs.filePrefix = eventsa1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute
Kafka Sink
Kafka Sink是Flume内置的Sink,只要稍微做配置,就可以把Event直接输出到Kafka Topic中,目前Flume支持Kafka 0.8.x系列。
配置项 | 默认值 | 说明 |
---|---|---|
type | org.apache.flume.sink.kafka.KafkaSink | |
brokerList | Kafka Sink连接的Broker列表 | |
topic | default-flume-topic | Kafak发布Event的Topic |
Kafka Sink参考配置
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.topic = mytopic
a1.sinks.k1.brokerList = localhost:9092
a1.sinks.k1.requiredAcks = 1
a1.sinks.k1.batchSize = 20
a1.sinks.k1.channel = c1
Avro Sink
把数据转成Avro Event格式,并发送到指定Avro端口,Event数据会批量发送,每次发送的数量可以在batch-size中设置。
配置项 | 默认值 | 说明 |
---|---|---|
channel | sink接收数据的channel | |
type | sink类型,必须为avro | |
hostname | 服务器地址 | |
port | 监听端口 |
Avro Sink参考配置
a1.channels = c1
a1.sinks = k1
a1.sinks.k1.type = avro
a1.sinks.k1.channel = c1
a1.sinks.k1.hostname = 10.10.10.10
a1.sinks.k1.port = 4545
Thrift Sink
Thrift Sink和Avro Sink类似,把数据转成Thrift Event格式,并发送到指定Thrift端口,Event数据会批量发送,每次发送的数量可以在batch-size中设置。Thrift Sink支持安全模式,可以在配置文件中设置。
配置项 | 默认值 | 说明 |
---|---|---|
channel | sink接收数据的channel | |
type | sink类型,必须为thrift | |
hostname | 服务器地址 | |
port | 监听端口 |
Thrift Sink参考配置
a1.channels = c1
a1.sinks = k1
a1.sinks.k1.type = thrift
a1.sinks.k1.channel = c1
a1.sinks.k1.hostname = 10.10.10.10
a1.sinks.k1.port = 4545
HBase Sink
HBase Sink分为同步(HBaseSink)和异步(AsyncHBaseSink)。