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 =
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:
a1.sinks.k1.requiredAcks =
a1.sinks.k1.batchSize =
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 =
a1.sinks.k1.port =
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 =
a1.sinks.k1.port =
HBase Sink
HBase Sink分為同步(HBaseSink)和異步(AsyncHBaseSink)。