1. 程式人生 > >Flume學習04 — Sink

Flume學習04 — Sink

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)。