Flume學習04 — Sink
阿新 • • 發佈:2019-01-08
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)。